【问题标题】:Cloud Firestore security rules, doesn't work in smartphonesCloud Firestore 安全规则,不适用于智能手机
【发布时间】:2025-12-21 11:10:12
【问题描述】:

查询和更新在智能手机中不起作用,但在模拟器(Cloud Firestore)中可以

Cloud Firestore 显示警告: “除非您更新安全规则,否则 Cloud Firestore 数据库将开始拒绝客户请求”。

然后查询和更新在智能手机中不起作用,但在 Android Studio 的模拟器中可以。

应用程序需要身份验证。当用户注册时,数据会保存在身份验证中,但不会保存在 Cloud Firestore 集合中。

我的安全规则代码:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

【问题讨论】:

    标签: google-cloud-firestore


    【解决方案1】:

    您的 Firestore 规则已配置为没有人(对于用户)可以修改您的 Firestore 数据库。如果您只希望经过身份验证的用户可以在您的 Firestore 数据库中读写,您应该更新您的 Firestore 规则,如下例所示:

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

    当用户注册时,数据保存在身份验证中,但不保存在 Cloud Firestore 集合中。

    这是正确的,它不会自动保存,您应该使用您的代码手动保存它。 Firebase 身份验证中的字段数量有限,例如电子邮件和电话号码,但您可以检索它。要为您的用户添加更多详细信息,您可以使用 Firestore,为用户创建一个集合,并将用户的其他详细信息存储在全名、年龄等字段中。

    【讨论】:

    • 谢谢,我为存储全名、年龄等和其他集合的用户收集了一个集合。用户存储在身份验证中,但不存储在智能手机上的 Cloud Firestore 中。在 Android Studio 的模拟器中,是的。我正在测试这个规则,但也不起作用。我现在就试试。