我想使用firebase实时数据库创建一个聊天应用程序,我已经拥有自己的服务器和我自己的用户和收件人身份验证。
基本上我想做的是:
我希望我的服务器能够产生空间,并且它的房间密钥,所以只有我分享可以访问房间的秘密密钥的人,做读写
也许流程是这样的 1.服务器使用REST API为此URL创建POST
curl -X PUT \
https://example-chat-92682.firebaseio.com/order-test.json \ -d
'{
"UB8Hdazo834-4760": {
"secret": "secret123"
}
}'
因此它将生成以下结构
- order-test
- UB8Hdazo834-4760
secret: "secret123",
2。然后我会将聊天室https://example-chat-92682.firebaseio.com/order-test/UB8Hdazo834-4760.json发送给用户
我将像json一样发送给他们
"room": "https://example-chat-92682.firebaseio.com/order-test/UB8Hdazo834-4760.json",
"secret": "secret123"
3。用户收到有效负载并使用它们使用他们的ios或android加入聊天,所以最终结构将是这样的
- order-test
- UB8Hdazo834-4760
secret: "secret123",
- chat
- Kifeisufsu23r
name: "Bob",
message: "How you doin?"
- Ki4324ffs3fIF
name: "Alex",
message: "I am fine"
问题是,如何使Firebase数据库规则创建读写验证? 我见过该文档,我无法使用Firebase身份验证,因为我拥有自己的身份验证并且无法控制身份验证(不同的微服务)
秘密将自动生成,因此我无法对数据库规则进行硬编码
如果你们对我的数据结构有任何反馈,我非常欢迎
答案 0 :(得分:3)
如果您有服务器,则可以mint a custom token for Firebase Authentication确保在Firebase中识别您的用户。然后,它们将在Firebase数据库安全规则中显示为opprun_all
和auth
。
但是在你现在的模特中,我建议把秘密放进房间的钥匙里:
现在,您可以轻松保护访问权限,以便只有知道房间ID和密码的用户才能访问它:
auth.uid