如何在Firebase实时数据库中使用密码保护某些节点

时间:2018-06-06 18:38:37

标签: firebase firebase-realtime-database

我正在创建一个带有Fireabse实时数据库后端的聊天室,我希望一些房间受密码保护。我粗略地了解它是如何工作的,但我却无法完全充实它。说我的结构是这样的:

Chatrooms : {
    -randomID : {
        roomName: 'Chatroom 1',
        password: 'foobar' 
        messages: {
          ...
        }
    }
}

我可以为需要密码的房间设置安全结构:

'Chatrooms' : {
    -randomID : {
        'roomName': 'Chatroom 1',
        'password': 'foobar',
        '.read': "data.child('validatedUsers/*user's uid*').val() === true",
        'validatedUsers' : {
            *user's uid* : true,
            *other user's uid* : true,
            ...
        }
        'messages': {
          '.read': false
          ...
        }
    }
}

这种方式(根据我的理解)我可以添加已被授予对validatedUsers对象的访问权限的用户,如果他们在列表中,那么顶级.read将覆盖'消息&# 39;读。

我的问题是我无法找到获取密码的安全方法,根据用户输入的内容进行检查,然后将其输入validatedUsers对象。既然这样做不安全,我不需要某种云功能来进行检查吗?现在我考虑一下,我可能还需要一个云函数来散列密码?

0 个答案:

没有答案