如何使用 flutter cloud_firestore 包传递 firestore 身份验证令牌

stt*_*106 5 firebase firebase-authentication flutter google-cloud-firestore

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

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

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Firestore.instance.collection('myCollection').document() .setData(myData);
Run Code Online (Sandbox Code Playgroud)

stt*_*106 4

以防万一这对其他人有帮助,我被告知不应将 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,以便可以显式传递身份验证令牌。