我在 Flutter 中遇到 Firebase 問題
這是代碼:
StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance.collection("tasks").snapshots(),
builder:(context, AsyncSnapshot<QuerySnapshot>snapshot){
if(!snapshot.hasData) return LinearProgressIndicator();
return Expanded(
child: _buildList(snapshot.data)
);
}
)
控制臺告訴我:
錯誤:引數型別“QuerySnapshot<Object?>?” 不能分配給引數型別 'QuerySnapshot<Object?>' 因為 'QuerySnapshot<Object?>?' 可以為空,而 'QuerySnapshot<Object?>' 不是。lib/main.dart:82
- 'QuerySnapshot' 來自 'package:cloud_firestore/cloud_firestore.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.1.4/lib/cloud_firestore.dart') . 包:cloud_firestore/cloud_firestore.dart:1
- “物件”來自“dart:core”。孩子:_buildList(snapshot.data)
我無法理解問題所在。謝謝
uj5u.com熱心網友回復:
snapshot.data可能為空,這意味著它可以為空。您已經null通過添加來確保它不會if (snapshot.hasData),但是 dart 不知道這一點。因此,為了讓 dart 知道您已確定可空值不為空,您應該添加一個空檢查運算子 ( !):
_buildList(snapshot.data!);
這意味著如果snapshot.data為空,您將收到錯誤,但在這種情況下不會因為您之前已經檢查過。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/381770.html
標籤:火力基地 扑 谷歌云firestore
下一篇:FirestorewithConverter在TS中回傳QueryDocumentSnapshot而不是Class
