Javascript 具有身份验证的云Firestore

Javascript 具有身份验证的云Firestore,javascript,firebase,authentication,firebase-authentication,google-cloud-firestore,Javascript,Firebase,Authentication,Firebase Authentication,Google Cloud Firestore,我一直在寻找一种在Firebase的新云Firestore中使用身份验证的方法。我知道这是可能的,但在文档和其他地方都没有好的指南 有人能解释一下当get()从Cloud Firestore读取数据时如何提供身份验证UID吗 以下是我的安全规则: service cloud.firestore { match /users/{userID} { allow read, write: if request.auth.uid == userID; } } 这是我目前的代码: 我的

我一直在寻找一种在Firebase的新云Firestore中使用身份验证的方法。我知道这是可能的,但在文档和其他地方都没有好的指南

有人能解释一下当
get()
从Cloud Firestore读取数据时如何提供身份验证UID吗

以下是我的安全规则:

service cloud.firestore {
  match /users/{userID} {
    allow read, write: if request.auth.uid == userID;
  }
}
这是我目前的代码:

我的数据库的结构只是根目录下的一个“用户”集合,然后是每个用户的一个文档(以UID命名)。我想获取带有用户UID的文档

当然,由于安全规则的原因,这会产生“缺少或权限不足”的错误


这个问题可能看起来很简单,但如果有人能找到一些关于这个的好文档,那就太好了

您的规则应该在
match/databases/{database}/documents

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
        allow read, write: if request.auth.uid == userID;
   }
  }
}

我只是对UID的工作原理感到困惑。我的印象是,您必须为数据库操作提供一个UID和一个auth令牌

实际上,您并没有将UID传递给数据库操作。
firebase
对象存储身份验证状态。您只需登录(),操作完成后(使用
。然后使用
承诺语句),您只需执行操作即可


此外,要让用户在每次访问您的应用程序时都不登录,您可以。

您想获取所有用户还是只获取您的用户。请提供(阅读链接,这非常有用)。例如,
docRef
指向什么?你是在登录用户吗?@frankvanpoffelen好的,我编辑了这个问题以填充缺失的信息。是的,我已经和谷歌进行了身份验证。我有UID,我只需要知道怎么处理it@Hareesh我添加了有关数据库结构的信息。我在根目录下有一个“users”集合,其中包含文档(以UID命名)。我想让具有相应UID的用户访问他们自己的文档。确定您如何将您的
城市
收藏链接到
用户
?这样做安全吗?正如您所解释的,它不是真正的身份验证:/@BMX是的。在幕后,当您调用登录方法时,将生成Oauth ID和刷新令牌。在执行安全规则之前,Firebase确保幕后JWT令牌有效。
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
        allow read, write: if request.auth.uid == userID;
   }
  }
}