我正在尝试使用 aStreamBuilder来获取数据,并且我想SliverList在 a 中使用all来显示该数据,CustomScrollView以便我可以利用CustomScrollView.
关于如何实现这一目标的任何想法?
我有一个由两部分组成的问题。在阅读 Firestore 定价后,它说根据您读写的文档数量以及您执行的操作(例如删除和其他一些因素)向您收费。话虽如此,StreamBuilder无论数据库中是否有新数据,只要滚动列表,我都会使用它不断刷新自身。现在,构建器正在从数据很少的集合中获取数据,但该集合可能会变得更大。话虽如此,我的问题是:
每次StreamBuilder刷新自身以显示新数据时,它实际上是再次从 中获取所有文档Firestore collection还是仅查找更改并更新它们?如果它再次从 获取文档Firestore,是否Firestore将其视为每次刷新时下载多个文档,或者是否只计算一次,并且如果获取的任何新文档有更新,则单独计算这些文档?
如果它像当前行为那样每 2 秒或更短的时间一遍又一遍地获取所有文档,是否有办法将这种说法限制为每 30 秒或RefreshIndicator使用每个 a以避免多次不必要的读取?我尝试使用 aStreamController但stream每次触摸列表或每秒都会刷新。
dart firebase firebase-realtime-database flutter google-cloud-firestore
我正在尝试在文档中创建一个子集合并将数据设置为创建的子集合中的文档。
我试过这个,但每次运行时程序都会崩溃。
await Firestore.instance
.collection('/path')
.document("documentPath")
.collection('/subCollectionPath')
.document()
.setData({
'TestData': "Data",
}).then((onValue) {
print('Created it in sub collection');
}).catchError((e) {
print('======Error======== ' + e);
});
Run Code Online (Sandbox Code Playgroud)
我也在网上查看过,但找不到任何相关文档。
有任何想法吗?
当我尝试上述代码时,应用程序崩溃并显示以下消息
flutter: EVENT StorageTaskEventType.success
*** First throw call stack:
(
0 CoreFoundation 0x0000000111eb61bb __exceptionPreprocess + 331
1 libobjc.A.dylib 0x0000000111454735 objc_exception_throw + 48
2 Runner 0x000000010ce707b1 -[FIRFirestore documentWithPath:] + 257
3 Runner 0x000000010d10662c getDocumentReference + 124
4 Runner 0x000000010d109879 -[FLTCloudFirestorePlugin handleMethodCall:result:] + 2665
5 Flutter 0x000000010e5b99a2 __45-[FlutterMethodChannel setMethodCallHandler:]_block_invoke + 115
6 Flutter 0x000000010e5d6616 _ZNK5shell21PlatformMessageRouter21HandlePlatformMessageEN3fml6RefPtrIN5blink15PlatformMessageEEE …Run Code Online (Sandbox Code Playgroud)