我在 Polymer 中使用 firebase-auth 和 firebase-document 元素。我使用“google”作为提供商登录。我的firebase数据库如下:
firebase-app-id-location
[-]users
[-]user1.uid
[-]user2.uid
所以我计划在他们使用“谷歌”注册时创建新用户。每个节点 user1.uid 都将包含自己的详细信息。为了让每个人的详细信息保密,我设置了以下安全规则。
"rules": {
"users": {
"$uid": {
// grants write access to the owner of this user account whose uid must exactly match the key ($uid)
".write": "auth !== null && auth.uid === $uid",
".read": "auth !== null && auth.uid === $uid"
为了测试我的代码,我使用 firebase 仪表板在用户下手动创建了一个节点,一切正常。但是现在,用户如何启动注册过程?因为该users/节点仅对登录用户可读/可写,我如何检查用户是否已经存在users/,如果不存在则创建一个新的新节点users/user3.uid。在侧面firebase-document聚合物元素中,我将位置设置为
location = "firebase-app-location.com/users/user.uid"。如果用户在场,那么我的应用程序工作正常并正在获取数据。但是如果用户不存在,那么我想在 users/ 下创建一个节点并加载一些预设的虚拟数据。
有任何想法吗?如何让这个工作。