如何仅允许经过身份验证的用户插入到 Cloud Firestore 数据库

Ala*_*ifa 1 android firebase firebase-security firebase-authentication google-cloud-firestore

用户登录应用程序后,我已使用电子邮件和密码成功应用了 Firebase 身份验证。

接下来,我为我的数据库设置了安全规则,Cloud Firestore如下所示。

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

现在,用户应该插入一些内容,但前提是他是经过身份验证的用户并且他的信息存在于 firebase 控制台的身份验证表中。

..但事实并非如此,当用户未经身份验证时,我已成功将一些数据插入数据库。看来规则被忽略了..!

我究竟如何才能只允许经过身份验证的用户读取和写入?

小智 7

试试这个代码:

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

  • 这确实是正确的做法。感谢您回答塞缪尔。@Alaa:请注意,这是 [Firebase 有关安全和身份验证的文档](https://firebase.google.com/docs/firestore/security/rules-conditions#authentication) 中的确切示例。 (3认同)