Javascript 启用安全规则时,接收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

我遇到firebase firestore数据库规则问题。我有一个相当标准的消息传递应用程序,我有一个如下结构的数据模型

[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对性能影响不大。但这意味着它可能取决于数据结构、实际规则以及您读取数据的方式。您是否可以编辑您的问题以包含以下内容?