相关疑难解决方法(0)

仅在Firebase Firestore中不存在时才创建文档

我想要实现的是非常简单的.我只需要在数据库中创建一个用户条目就不需要了.

应用程序流程:

  1. 使用Firebase Auth创建用户(获取UID)
  2. 使用UID作为密钥在数据库中创建用户文档

客户端代码(创建操作):

this.db.doc('users/' + uid).set({username: Santa})
Run Code Online (Sandbox Code Playgroud)

火库规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow create: if 
        request.auth != null && 
        request.auth.uid == uid && 
        !exists(/databases/$(database)/documents/users/$(uid));
      allow update: if request.auth != null && request.auth.uid == uid; 
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

附加信息:

您可能已经知道代码不起作用.每次运行客户端代码时,当前用户都会被新文档完全替换.但是,如果我从规则中删除以下行,一切都按预期工作:

allow update: if request.auth != null && request.auth.uid == uid;

但现在问题出现了,我如何保护用户文档中的数据免受未经授权的修改?有什么建议?

google-cloud-firestore

8
推荐指数
1
解决办法
5520
查看次数

标签 统计

google-cloud-firestore ×1