如何使用flutter cloud_firestore包传递firestore auth token

Posted

技术标签:

【中文标题】如何使用flutter cloud_firestore包传递firestore auth token【英文标题】:how to pass firestore auth token using flutter cloud_firestore package 【发布时间】:2019-03-19 15:10:29 【问题描述】:

我正在使用 firebase auth REST api 进行身份验证;这部分工作正常,因为我可以登录/注册用户,我可以得到 uid 和 auth token 回来。

在尝试写入 Cloud Firestore 时,如果我将 Cloud Firestore 数据库规则设置为(这是最基本的身份验证规则之一):

service cloud.firestore 
  match /databases/database/documents 
    match /document=** 
      allow read, write: if request.auth.uid != null;
    
  

但是如何使用 cloud_firestore 包将 uid 传递给云 Firestore 请求,例如我想写一个集合:

Firestore.instance.collection('myCollection').document() .setData(myData);

【问题讨论】:

你是否得到了这个工作,或者你只是最终使用了 REST api? 【参考方案1】:

以防万一这对其他人有所帮助,有人告诉我,我不应该将 firebase auth REST api 与 firestore 非 REST api 混合使用。 如果我想使用 cloud_firestore 包,我也将使用 firebase_auth 包,这样 firebase_auth 将处理底层身份验证,而不需要 cloud_firestore 显式传递任何身份验证令牌。

与此同时,firestore 也有一个REST api;因此,如果有人真的想使用 firebase auth REST api,那么也应该使用 firestore REST api,以便可以显式传递身份验证令牌。

【讨论】:

我觉得不可思议的是,cloud_firestore 不允许在每个请求中传递令牌来验证用户的身份验证,就像 Firestore 的其他 API 一样。如果有人及时阅读了这篇文章,请不要犯我的错误,从你的项目开始就使用 rest api 而不是 cloud_firestore。

以上是关于如何使用flutter cloud_firestore包传递firestore auth token的主要内容,如果未能解决你的问题,请参考以下文章

如何在flutter中使用flutter_webview_plugin和AndroidX

如何使用 flutter_webview 插件在 Flutter 中启用位置?

如何在 Flutter 上使用 API

如何通过 FlutterView 或 Flutter.createFragment 使用平台通道

Flutter 和 Amplify/Cognito:如何使用 Flutter 更新 Amplify/cognito 中的电话号码

如何在 Flutter 的原生 C++ 中使用 OpenCV 4(2021 年)(支持 Flutter 2.0)? [关闭]