Javascript 启用安全规则时,接收Firestore更新的延迟很高
我遇到firebase firestore数据库规则问题。我有一个相当标准的消息传递应用程序,我有一个如下结构的数据模型Javascript 启用安全规则时,接收Firestore更新的延迟很高,javascript,performance,firebase,firebase-security,google-cloud-firestore,Javascript,Performance,Firebase,Firebase Security,Google Cloud Firestore,我遇到firebase firestore数据库规则问题。我有一个相当标准的消息传递应用程序,我有一个如下结构的数据模型 [conversations] / Conversation / [messages] / Message 会话对象有一个映射{participants\u id:true`来表示成员身份以及其他特定于应用程序的数据。 我是这样制定规则的 match /conversations/{conversationID} { allow read, update: if re
[conversations] / Conversation / [messages] / Message
会话对象有一个映射{participants\u id:true`来表示成员身份以及其他特定于应用程序的数据。
我是这样制定规则的
match /conversations/{conversationID} {
allow read, update: if request.auth != null && resource.data.participants[request.auth.uid] == true;
// creation case is omitted for brevity
match /messages/{messageID} {
allow read, create: if request.auth != null && get(/databases/$(database)/documents/conversations/$(conversationID)).data.participants[request.auth.uid] == true;
}
}
当这些规则被启用时,我会在db修改之间经历一个令人惊讶的持续30秒的延迟
(例如,消息中的新消息
收集或更新来自管理界面或函数的对话
对象)以及js sdk(angularfire)中的相应事件。
如果禁用这些规则,延迟就会消失。我测试了不同的规则条件组合,唯一没有延迟的情况是两个匹配项都有allow read,write;
body。
是否有人已经遇到了相同的问题?您是否知道在涉及规则时会出现一些请求限制
非常感谢
编辑:
我创建了一个最小版本来重新创建该问题。代码可在上获得,并部署在此处Hmmm.。根据我的经验,安全规则对性能影响不大。但这意味着它可能取决于数据结构、实际规则以及您读取数据的方式。您是否可以编辑您的问题,以便在我的经验安全规则中包含?Hmmmes对性能影响不大。但这意味着它可能取决于数据结构、实际规则以及您读取数据的方式。您是否可以编辑您的问题以包含以下内容?