gpt4 book ai didi

firebase - Flutter Firebase 云函数 : The data couldn’t be read because it isn’t in the correct format

转载 作者:行者123 更新时间:2023-12-05 00:56:15 24 4
gpt4 key购买 nike

我尝试使用 Flutter 项目中的 cloud_functions 插件调用我的云函数,代码如下:

final HttpsCallable callable = new CloudFunctions(region: "europe-west3")
.getHttpsCallable(functionName: 'helloWorld');

dynamic resp = await callable.call(<String, dynamic>{'id': id, 'chatId': chat.chatId});

并得到以下错误:

ERROR: PlatformException(3840, The data couldn’t be read because it isn’t in the correct format., null)

通过我的研究,我发现当您忘记将区域放在服务器端和客户端时会出现问题,但错误仍然存​​在。

我也尝试通过成功的http请求:

var parameters = {'id': id, 'chatId': chat.chatId};
var url = "https://europe-west3-{MY_DOMAIN}.cloudfunctions.net/helloWorld";
await http.post(url, body: parameters).then((res) {...}

所以我认为问题出在插件上,我可能忘记了一些东西。有什么想法吗?

云功能(测试):

exports.helloWorld = functions
.region('europe-west3')
.https.onRequest((request, response) => {
try {
response.send('Hello from Firebase!');
} catch (e) {
console.log(e);
throw new functions.https.HttpsError('calc-error', e);
}
});

最佳答案

当您在 Flutter 应用上使用 callable 时,请尝试将您的函数转换为使用 onCall 而不是 onRequest:

使用 onCall 的 Firebase 函数:

export const helloWorld = functions.https.onCall((data, context) => {
functions.logger.info("data:", data);
return {
message: "bye!"
};
});

flutter 应用:

模拟器设置:

  // after: Firebase.initializeApp()
FirebaseFunctions.instance.useFunctionsEmulator(origin: 'http://localhost:5001');

调用函数:

  FirebaseFunctions functions = FirebaseFunctions.instance;

HttpsCallable callable = functions
.httpsCallable('helloWorld');
final results = await callable.call({
'name': 'Erick M. Sprengel',
'email': 'erick@mail.com'
});

请注意 onCallonRequest 之间的区别。它很容易转换,但我认为最好检查这个问题:Firebase Cloud Functions: Difference between onRequest and onCall

额外提示:

  • 我用的是模拟器,没有设置区域。
  • 请记住在每次更改后重新构建您的函数。我正在使用 npm run build -- --watch

关于firebase - Flutter Firebase 云函数 : The data couldn’t be read because it isn’t in the correct format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62577983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com