Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为一对一聊天应用编写firestore规则?_Javascript_Reactjs_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Javascript 如何为一对一聊天应用编写firestore规则?

Javascript 如何为一对一聊天应用编写firestore规则?,javascript,reactjs,firebase,google-cloud-firestore,firebase-security,Javascript,Reactjs,Firebase,Google Cloud Firestore,Firebase Security,我使用firebase和firestore为一个网站制作了一对一聊天应用程序。现在我想为同样的问题编写firebase firestore规则。应用程序是这样工作的……首先,如果用户是sandeyshc@gmail.com然后用户获取聊天ID和好友Gmail…然后用户使用聊天ID在messages选项卡中进行检查,并获取所有与聊天相关的详细信息。现在我想为这个应用程序实现firestore规则。如何实施 解决这一问题的最佳方法是结合使用firestore规则和云功能 首先,两个用户应该在不同的

我使用firebase和firestore为一个网站制作了一对一聊天应用程序。现在我想为同样的问题编写firebase firestore规则。应用程序是这样工作的……首先,如果用户是sandeyshc@gmail.com然后用户获取聊天ID和好友Gmail…然后用户使用聊天ID在messages选项卡中进行检查,并获取所有与聊天相关的详细信息。现在我想为这个应用程序实现firestore规则。如何实施


解决这一问题的最佳方法是结合使用firestore规则和云功能

首先,两个用户应该在不同的位置存储相同的聊天记录。 使用firestore规则,您应该限制每个用户只更改自己的聊天,并且只能在聊天中编写自己的消息

当他编写自己的消息时,应触发一个云函数,该函数向其他用户发送推送通知,并使用云函数中的管理员权限将该消息写入其他用户的聊天室

这样,两个用户在不同的位置进行相同的聊天。你也可以通过让他们访问一个单独的聊天,但是在将来考虑一个用户可以删除聊天或消息的用例。您可能不希望一个用户可以删除另一个用户的消息

还有一个重要注意事项:避免将用户保存在
电子邮件下。您应该始终将它们存储在应用程序身份验证用户Uid下。电子邮件中可能包含不支持作为数据库密钥的
字符
,将来使用该电子邮件可能会出现其他不同的错误


下面是react和firebase开发的开源聊天应用程序的一个示例。它使用实时数据库,但您可以轻松地重用该概念。您可以在那里看到函数是如何编写的,以及如何在前端使用它。

您可以在codesandbox上运行它吗?我在那边遇到了一个错误