Firebase - 安全地加入密码聊天

时间:2017-12-21 11:44:30

标签: android firebase firebase-realtime-database kotlin

如何检查用户是否输入了正确的密码来加入聊天。

这种方法可能完全不合适。这段代码只是为了展示我想要完成的东西,但它根本不起作用。

val ref = FirebaseDatabase.getInstance().getReference("chats")  

ref.child(chatName).child("password").equalTo(password).addListenerForSingleValueEvent(   
    override fun onDataChange(snapshot: DataSnapshot) {
        Log.d(TAG, snapshot.toString())
        // if there is data the password was right
    }
    ....
)

如何安全地完成整个加密与密码系统的聊天?我必须设置什么样的规则到数据库。

是否可以使用rooted phone更改firebase查询并查看在客户端和服务器之间传输的数据?

1 个答案:

答案 0 :(得分:1)

如果您想使用密码保护每个聊天室,可以选择将该密码嵌入聊天室的路径中。例如:

chats: {
  roomId1: {
    secret: {
      chat11: ...
      chat12: ...
    }
  }
  roomId2: {
    correcthorsebatterystaple: {
      chat21: ...
      chat22: ...
    }
  }

使用以下规则保护此结构:

{
  "rules": {
    ".read": false,
    "chats": {
      "$roomId": {
        "$password: {
          ".read": true
        }
      }
    }
  }
}

通过这种结构,没有人可以阅读房间列表,甚至是特定房间。为了能够阅读,他们必须知道房间ID和该房间的密码。