Firebase实时数据库身份验证

时间:2017-07-20 16:50:11

标签: firebase firebase-realtime-database firebase-authentication

我想使用Firebase实时数据库。我创建了我想要的数据结构。你有成员,房间和他们之间的关系。一个房间里的每个人都可以互相“交谈”。

json数据结构:

{
  members : {
    "223dfa323" : {
      name : "Test member",
      os : "IOS",
      date_registered : "2017-02-02",
      enabled : true

    },
    "ddfa33434" : {
      name : "Test member 2",
      os : "Android",
      date_registered : "2017-02-03",
      enabled : true
    },
    "3434" : {
      name : "Test member 3",
      os : "Android",
      date_registered : "2017-02-03",
      enabled : true
    }

  },

  rooms : {
    "1234" : {
      name : "Room 1",
      date_created : "2017-02-02",
      enabled : true

    },
    "2312" : {
      name : "Room 2",
      date_registered : "2017-02-03",
      enabled : true
    }
  },

  roommembers : {
    "1234" : {
      members : {
        "223dfa323" : true,
        "ddfa33434" : true
      }
    }
  }
}

但是如何防止其他人访问该数据呢?如何让会员访问自己的数据?例如,成员3434无法访问1234房间,因为它没有链接到它。

其他设备可以访问该数据。

如何在Firebase中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以使用firebase' security rules。在你的情况下,这些可能是:

"rules": {
    "rooms": {
        "$roomID": {
            ".read": .read": "root.child('roommembers/'+$roomID+'/members/'+auth.uid).exists()"
        }
    }
}