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

Flatter firebase函数错误:响应不是有效的JSON对象,firebase,flutter,dart,google-cloud-functions,Firebase,Flutter,Dart,Google Cloud Functions,您好,我试图使用Pkg使用firebase函数,但在flatterconsel中出错,我试图在函数中传递参数,该函数是用户的UID Consel错误: E/flutter (17871): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: [firebase_functions/internal] Response is not valid JSON object. E/flutter (17871): #0

您好,我试图使用Pkg使用firebase函数,但在flatterconsel中出错,我试图在函数中传递参数,该函数是用户的UID

Consel错误:

E/flutter (17871): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: [firebase_functions/internal] Response is not valid JSON object.
E/flutter (17871): #0      catchPlatformException
package:cloud_functions_platform_interface/…/utils/exception.dart:21
E/flutter (17871): #1      _rootRunBinary (dart:async/zone.dart:1378:47)
E/flutter (17871): #2      _CustomZone.runBinary (dart:async/zone.dart:1272:19)
E/flutter (17871): #3      _FutureListener.handleError (dart:async/future_impl.dart:166:20)
E/flutter (17871): #4      Future._propagateToListeners.handleError (dart:async/future_impl.dart:716:47)
E/flutter (17871): #5      Future._propagateToListeners (dart:async/future_impl.dart:737:24)
E/flutter (17871): #6      Future._completeError (dart:async/future_impl.dart:547:5)
E/flutter (17871): #7      _completeOnAsyncError (dart:async-patch/async_patch.dart:264:13)
E/flutter (17871): #8      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart)
package:flutter/…/services/platform_channel.dart:1
E/flutter (17871): <asynchronous suspension>
Firebase的颤振运行功能:

    IconButton(
        icon: Icon(Icons.add),
        onPressed: () async {
          HttpsCallable callable =
              FirebaseFunctions.instance.httpsCallable('listFruit');
          final results = await callable.call(<String, dynamic>{
            'uid': '123',
          });
          print(results
              .data.toString()); // ["Apple", "Banana", "Cherry", "Date", "Fig", "Grapes"]
        });
IconButton(
图标:图标(Icons.add),
onPressed:()异步{
HttpScalable可调用=
FirebaseFunctions.instance.httpscalable('listFruit');
最终结果=等待调用。调用({
“uid”:“123”,
});
打印(结果)
.data.toString();//[“苹果”、“香蕉”、“樱桃”、“枣”、“无花果”、“葡萄”]
});
我的目标是:

将参数传递给firebase函数。

而不是

exports.helloWorld = functions.https.onCall((data, context) => {
  return data.data()['uid'];
});
你应该这样做

exports.helloWorld = functions.https.onCall((data, context) => {
  return data['uid'];  // Or  data.uid
});
在可调用的云函数中没有更多的细节


此外,请注意,您的云函数名为
helloWorld
,但您可以使用
FirebaseFunctions.instance.httpscalable('listFruit'
);来调用它;。因此,您应该调整其中一个,例如,
FirebaseFunctions.instance.httpscalable('helloWorld')

代替

exports.helloWorld = functions.https.onCall((data, context) => {
  return data.data()['uid'];
});
你应该这样做

exports.helloWorld = functions.https.onCall((data, context) => {
  return data['uid'];  // Or  data.uid
});
在可调用的云函数中没有更多的细节



此外,请注意,您的云函数名为
helloWorld
,但您可以使用
FirebaseFunctions.instance.httpscalable('listFruit'
);来调用它;。因此,您应该调整其中一个,例如,
FirebaseFunctions.instance.httpscalable('helloWorld')

它对返回数据['uid']的处理。感谢您的帮助,它处理返回数据['uid']。谢谢你的帮助,