如何允许用户在Firebase for Android中创建私有数据?

4

我想使用Firebase为安卓开发一个在线密码保存应用。Firebase的文档告诉我有关身份验证和CRUD方法的信息,但我找不到任何有关允许用户创建仅对他们可访问的私人数据的内容。我该如何实现呢?或者在哪里可以找到这些信息?

2个回答

6
Firebase数据库具有灵活的基于规则的安全模型。请参阅文档获取所有详细信息。
当与Firebase身份验证结合使用时,您将能够执行基于用户的身份验证。这是来自该文档中最简单的示例: 用户安全认证
请注意,保留了HTML标签。
{
  "rules": {
    "users": {
      "$uid": {
        // grants write access to the owner of this user account
        // whose uid must exactly match the key ($uid)
        ".write": "$uid === auth.uid"
      }
    }
  }
}

但我建议阅读完整的文档以获取详细信息。


还可以查看谷歌2016年5月举行的视频会议,题为“Firebase安全的关键”,链接为https://youtu.be/PUBnlbjZFAI。 - devprashant

1
您可以使用规则允许用户存储私有数据,在验证用户身份后,创建以唯一用户ID开头的私有路径。 假设您有以下JSON结构。
{
  "users" : {
    "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" : {
        //private data of user with unique id "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
    },
    "ffffffff-gggg-hhhh-iiii-kkkkkkkkkkkk" : {
        //private data of user with unique id "ffffffff-gggg-hhhh-iiii-kkkkkkkkkkkk"
    }
  }
}

您必须仅允许正确的用户读取和写入文件夹,甚至在路径不存在时创建路径。规则可以如下:

{
  "rules": {
    "users":{
      ".write": "newData.hasChild(auth.uid)", //you can write only if you put your data inside a path starting with your id
      "$uid":{
        ".read":"$uid == auth.uid" //only the right user can read the data
      }
    }
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接