android - Firebase + Flutter - 云函数 onCall 导致 Android 应用程序出现 "unauthenticated"错误

标签 android firebase flutter google-cloud-functions

我已将以下测试 https.onCall 函数部署到 firebase 上的 Cloud Functions - 使用节点 10 部署:

export const helloWorld = functions.https.onCall((data, context) => {

    return {
        "message": "Hello, world",
    }

}); 

从节点环境测试时,此函数按预期返回。

但是,在我的 flutter (android) 应用程序中 - 使用 Cloud functions plugin for Flutter ,尽管已登录(通过电话号码验证),但我收到以下身份验证错误:

flutter 代码:

void _checkAuth() async { 

    print("Check auth");
    final FirebaseAuth _auth = FirebaseAuth.instance;
    var user = await _auth.currentUser();

    print(user.toString());

    _testFunCall();
}

void _testFunCall() async {
    HttpsCallable callable = CloudFunctions.instance
        .getHttpsCallable(functionName: 'helloWorld');

    try {
        final HttpsCallableResult result = await callable.call();
        print(result.data);

    } on CloudFunctionsException catch (e) {
        print('caught firebase functions exception');
        print(e.code);
        print(e.message);
        print(e.details);
    } catch (e) {
        print('caught generic exception');
        print(e);
    }
}

错误:

I/flutter ( 4662): caught firebase functions exception
I/flutter ( 4662): UNAUTHENTICATED
I/flutter ( 4662): Unauthenticated
I/flutter ( 4662): null

有什么想法吗?

最佳答案

问题是在部署到云函数时使用 Node 10。

Node 10 目前处于测试阶段。切换到节点 8,它工作正常:

在云函数目录的 package.json 中,切换:

  "engines": {
    "node": "10"
  },

到:

  "engines": {
    "node": "8"
  },

关于android - Firebase + Flutter - 云函数 onCall 导致 Android 应用程序出现 "unauthenticated"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56120115/

相关文章:

java - 将 SQL Azure 与 Android 连接

ios - 如何解析Firebase实时数据库

flutter - 如何使我的内容具有响应性并且不会溢出容器

android - 如何禁用 FragmentActivity 中的窗口标题?

android - 需要一些关于开发者控制台上的 beta/alpha 测试的说明

firebase - Firebase:激活只读和非实时模式以提高浏览器性能

flutter - 在 flutter 中格式化文本小部件的部分文本

flutter - "Waiting for a connection from Flutter on device..."如何解决

android - 房间查询不起作用

html - Firebase 托管 URL 需要 .html 才能显示页面