[Flutter] アプリからCloudFunctionsの関数に引数を渡す、返り値を受け取る
7328 ワード
Flutterのアプリ作成で実装したことです。
何回も使いそうなので忘れないように記事にしておこうと思いました。
onRequest
と onCall
で引数の渡し方、返り値の受け取り方が少し違います。
一度まとめておくと、次から調べる時間が短縮できるので。
このやり方以外にもあると思いますが、少しでも誰かのお役に立てれば、幸いに思います。
onRequestの場合
CloudFunctionsの関数
import * as functions from "firebase-functions";
export const testFunction = functions
.region("asia-northeast1")
.https.onRequest(async (request, response) => {
const testVar = request.body.data.testVar; // requestに格納されている引数を受け取る
...省略
response.status(200).send({
data: { resultVar: resultVar }, // responseに格納して、アプリに返り値を返す
});
});
アプリ側
import 'package:cloud_functions/cloud_functions.dart';
final callable = FirebaseFunctions.instanceFor(region: 'asia-northeast1')
.httpsCallable('testFunction');
final response = await callable.call({ 'testVar': testVar }); // 変数を渡す
final resultVar = response.data['resultVar']; // 返り値を取り出す
onCallの場合
CloudFunctionsの関数
import * as functions from "firebase-functions";
export const testFunction = functions
.region("asia-northeast1")
.https.onCall(async (data, context) => {
const testVar = data.testVar; // dataに格納されている引数を受け取る
...省略
return { resultVar }; // アプリ側に返り値を返す
});
アプリ側
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_core/firebase_core.dart';
final functions = FirebaseFunctions.instanceFor(
app: Firebase.app(), region: 'asia-northeast1');
final callable = functions.httpsCallable('testFunction');
final result = await callable({'testVar': testVar}); // 変数を渡す
final resultVar = result.data['resultVar']; // 返り値を取り出す
参考にしたサイト
Author And Source
この問題について([Flutter] アプリからCloudFunctionsの関数に引数を渡す、返り値を受け取る), 我々は、より多くの情報をここで見つけました https://qiita.com/Hiiisan/items/020aea3050bd034dfbfd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .