Flutter firebase 函数错误:响应不是有效的 JSON 对象

Kha*_*tri 3 dart firebase flutter google-cloud-functions

您好,我尝试通过Cloud_Functions Pkg使用 firebase 函数,但在 flutter consel 中出现错误,我尝试在函数中传递参数,即用户的 UID。

\n

康塞尔错误:

\n
E/flutter (17871): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: [firebase_functions/internal] Response is not valid JSON object.\nE/flutter (17871): #0      catchPlatformException\npackage:cloud_functions_platform_interface/\xe2\x80\xa6/utils/exception.dart:21\nE/flutter (17871): #1      _rootRunBinary (dart:async/zone.dart:1378:47)\nE/flutter (17871): #2      _CustomZone.runBinary (dart:async/zone.dart:1272:19)\nE/flutter (17871): #3      _FutureListener.handleError (dart:async/future_impl.dart:166:20)\nE/flutter (17871): #4      Future._propagateToListeners.handleError (dart:async/future_impl.dart:716:47)\nE/flutter (17871): #5      Future._propagateToListeners (dart:async/future_impl.dart:737:24)\nE/flutter (17871): #6      Future._completeError (dart:async/future_impl.dart:547:5)\nE/flutter (17871): #7      _completeOnAsyncError (dart:async-patch/async_patch.dart:264:13)\nE/flutter (17871): #8      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart)\npackage:flutter/\xe2\x80\xa6/services/platform_channel.dart:1\nE/flutter (17871): <asynchronous suspension>\n
Run Code Online (Sandbox Code Playgroud)\n

Firebse功能:

\n
exports.helloWorld = functions.https.onCall((data, context) => {\n  return data.data()[\'uid\'];\n});\n
Run Code Online (Sandbox Code Playgroud)\n

Firebase 的 Flutter 运行功能:

\n
    IconButton(\n        icon: Icon(Icons.add),\n        onPressed: () async {\n          HttpsCallable callable =\n              FirebaseFunctions.instance.httpsCallable(\'listFruit\');\n          final results = await callable.call(<String, dynamic>{\n            \'uid\': \'123\',\n          });\n          print(results\n              .data.toString()); // ["Apple", "Banana", "Cherry", "Date", "Fig", "Grapes"]\n        });\n
Run Code Online (Sandbox Code Playgroud)\n

我的目标 :

\n

将参数传递给 firebase 函数。

\n

Nao*_*aoj 6

我遇到了同样的错误,这是由于未提供该区域,如果该功能未部署在us-central1中,则似乎需要提供该区域。按照他们的文档,您可以像这样执行调用:

FirebaseFunctions.instanceFor(region: 'europe-west1').httpsCallable('listFruit');
Run Code Online (Sandbox Code Playgroud)