【发布时间】:2021-12-04 16:14:45
【问题描述】:
我正在使用 Firebase 制作聊天应用。
由于我没有订阅 Cloud Functions,所以我使用的是“聊天室”模型,如果您进入,您可以与其他人聊天。
我的模型中的聊天室只有两个人。
在数据库中,这意味着只有这两个用户可以访问这个聊天室。
这是我的 Firebase rtdb 安全文件
"chat": {
"$chatroomid": {
".read": "auth != null",
".write": "auth != null"
}
}
这仅允许经过身份验证的用户访问聊天室内的内容。
但如果您已通过身份验证并且知道聊天室 ID,您可以作为第三人加入。
我想防止这种情况发生。
我知道直接使用 Firebase 功能无法做到这一点。有没有我可以应用的技巧?
【问题讨论】:
-
一种方法是使用两个用户的 UID 的串联创建“$chatroomid”,并使用 rtdb 规则检查“auth.uid”是否包含在“$chatroomid”变量中。但我不知道如何进行检查。
-
我还需要验证 UID 连接的顺序。如果 _ 是分隔符并且 UID 是“123”和“abc”,则 roomid 应该是“123_abc”,而不是相反。
标签: firebase-realtime-database firebase-authentication firebase-security