【问题标题】:Unable to write on firestore emulator无法在 Firestore 模拟器上写入
【发布时间】:2022-01-16 02:22:49
【问题描述】:

我能够从 Firestore 模拟器读取数据,但无法通过客户端(这是一个 android 应用程序)向其中添加任何数据。

这是错误:

W/Firestore: (24.0.0) [Firestore]: Write failed at Users/vBLloPGsMJrXGDZdZcVO: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null}

我在本地环境中的 firestore.rules 文件

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

这是用于写入firestore的代码

FirebaseFirestore.getInstance().collection("Users")
            .document(userId)
            .set(newUser)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()){

                Log.d(TAG, "new user has been added");
               

            }else {

                Log.d(TAG, "Failed to add new user"+Objects.requireNonNull(task.getException()).getMessage());


            }
        }
    });

【问题讨论】:

  • 根据security rules,您的代码似乎没有足够的权限写入数据库。
  • 我已经展示了我的 firestore.rules 文件
  • 请在问题中添加您用于写入 firestore 的代码

标签: android google-cloud-firestore firebase-security firebase-tools


【解决方案1】:

看起来您正在尝试更新文档(与编写文档不同)。尝试在您的 Firestore 安全规则中添加“更新”,如下所示:

allow read, get, update: if true;

【讨论】:

猜你喜欢
  • 2020-01-07
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 2011-09-16
相关资源
最近更新 更多