获取 QuerySnapshot 而不是 DocumentSnapshot [FLUTTER]
Getting QuerySnapshot instead of DocumentSnapshot [FLUTTER]
StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
FirestoreUser firestoreUser =
FirestoreUser.fromDocument(snapshot.data); // Here snapshot.data is retrieving QuerySnapshot.
// How I can convert it to DocumentSnapshot
...
你好 Whosebug 用户
我需要为我的新 firestoreUser 变量提供哪种类型的 DocumentSnapshot。但是我看不到。
写 snapshot.data 后,它给我一个名为“QuerySnapshot 不是 DocumentSnapshot 的子类型”的错误
P.s 如您所见,我正在使用 StreamBuilder。谢谢
您的流是 FirebaseFirestore.instance.collection('users').snapshots()
,它是一个 QuerySnapshot,意思是扩展了 DocumentSnapshot 的 QueryDocumentSnapshot 列表。
因此,如果您想要 'users' 集合中每个用户的 documentSnapshot,则必须迭代 snapshot.data.docs:
但是如果你想获取特定用户的文档,那么你可以这样做:
StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').doc(userID).snapshots(),
builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
FirestoreUser firestoreUser =
FirestoreUser.fromDocument(snapshot.data);
...
StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
FirestoreUser firestoreUser =
FirestoreUser.fromDocument(snapshot.data); // Here snapshot.data is retrieving QuerySnapshot.
// How I can convert it to DocumentSnapshot
...
你好 Whosebug 用户
我需要为我的新 firestoreUser 变量提供哪种类型的 DocumentSnapshot。但是我看不到。
写 snapshot.data 后,它给我一个名为“QuerySnapshot 不是 DocumentSnapshot 的子类型”的错误
P.s 如您所见,我正在使用 StreamBuilder。谢谢
您的流是 FirebaseFirestore.instance.collection('users').snapshots()
,它是一个 QuerySnapshot,意思是扩展了 DocumentSnapshot 的 QueryDocumentSnapshot 列表。
因此,如果您想要 'users' 集合中每个用户的 documentSnapshot,则必须迭代 snapshot.data.docs:
但是如果你想获取特定用户的文档,那么你可以这样做:
StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').doc(userID).snapshots(),
builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
FirestoreUser firestoreUser =
FirestoreUser.fromDocument(snapshot.data);
...