我以为我了解StreamBuilders,但是我有些疑惑困扰着我。
我以为ConnectionState.waiting意味着正在创建与流的连接,因此仍然无法接收流数据。
不过,就我而言,我始终会收到ConnectionState.waiting。第一次使用的数据是在initialData中指定的数据,这很好,但是如果ConnectionState始终为“waiting”,则在从流evnt获取值之后。
要在此处显示此内容,您可以看到第一次调用builder函数的屏幕截图。这看起来不错:快照值是initialData参数提供的值,并且ConnectionState正在等待
这是第二次调用builder函数的屏幕截图。
这里的快照值是一个新的流值(因此连接状态现在应该处于 Activity 状态),但实际上,connectionState仍在等待!
最佳答案
这可能是您的Firestore规则。如果是这样的话:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
那么您将没有经过身份验证即可获取数据。您可以通过允许任何人访问数据库来快速(但不是永久地)测试此问题。rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
...但是请稍后再将其更改为更安全的名称。