我尝试使用Firebase Emulator从Flutter应用程序中使用Firebase Cloud函数。在生产中,调用运行良好,但在Emulator中却没有,我总是会收到以下错误。
调用函数后出错
[VERBOSE-2:ui_dart_state.cc(166(]未处理的异常:PlatformException(-5,操作无法完成。(com.google.GTMSessionFetcher错误-5。(,null(
Flutter代码
CloudFunctions(region: "europe-west3")
.useFunctionsEmulator(origin: "127.0.0.1:8080")
.getHttpsCallable(
functionName: "addUser",
)
.call(
{"name": "oui", "email": "oui@oui.fr"},
).then(
(value) {
print('OK');
print(value);
},
);
firebase.json
{
"emulators": {
"functions": {
"port": 5001
},
"firestore": {
"host": "0.0.0.0",
"port": 8080
},
"ui": {
"enabled": true
}
}
}
在firebase.json
中,函数模拟器的端口设置为5001,而在所示代码中,useFunctionsEmulator
方法调用8080。此端口是为firestore模拟器设置的。
根据文件参数应为:
将此实例更改为指向本地运行的云函数模拟器。
@param origin本地仿真器的起源,例如"//10.0.2:5005";。
虽然这并不直接,但我认为doc的意思是函数模拟器。