我在Polymer中使用firebase-auth和firebase-document元素。我以“谷歌”作为提供商登录。我的firebase数据库如下所示:
firebase-app-id-location
[-]users
[-]user1.uid
[-]user2.uid
所以我打算在使用“Google”注册时创建新用户。每个节点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"
。如果用户在场,那么我的应用程序正常工作并获取数据。但是如果用户不在,那么我想在用户/下创建一个节点并加载一些预设的虚拟数据。
有什么想法吗?如何使这个工作。