我試圖在我的顫振應用程式中獲取一個字串/檢查一個字串以進行驗證。我一直在嘗試使用 .where() 函式,但是當我這樣做時他們給了我這個錯誤
The argument type 'Future<QuerySnapshot<Object?>>' can't be assigned to the parameter type 'Future<DocumentSnapshot<Object?>>?'
這是給我錯誤的代碼
final phoneNumber = ModalRoute.of(context)!.settings.arguments as String;
CollectionReference users = FirebaseFirestore.instance.collection('users');
return FutureBuilder<DocumentSnapshot>(
future: users.where("phoneNumber", isEqualTo : phoneNumber).get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return const Text("Something went wrong");
}
if (snapshot == null || !snapshot.data!.exists) {
return const Text("data doesn't exist");
}
if (snapshot.hasData) {
return const Text("data exist already");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data =
snapshot.data!.data() as Map<String, dynamic>;
return Text("Full Name: ${data['full_name']} ${data['last_name']}");
}
return const Text("loading");
},
);
一直在嘗試和搜索 3-4 小時,但所有參考資料都告訴我,我需要輸入唯一 ID
看起來像這樣
final docSnapshot = await Firestore.instance
.collection("$Friseur/1/$Tag/1/$Uhrzeit")
.document(${doc_id_here})
.get();
if(docSnapshot.exists) {
setState(...)
}
else {
setState(...)
}
uj5u.com熱心網友回復:
更改FutureBuilder<DocumentSnapshot> to FutureBuilder<QuerySnapshot>
時使用 where 操作回傳 QuerySnapshot。
uj5u.com熱心網友回復:
在 where 函式之后添加帶有檔案 ID 的 doc 函式,因為未來引數接受 Future<DocumentSnapshot<Object?>>?
future: users.where("phoneNumber", isEqualTo : phoneNumber).doc(documentId).get(),
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/469120.html
