因此,我正在嘗試使用 Firebase-Firestore 制作一個聊天應用程式,您可以在其中選擇創建群組。現在,在創建組后,我正在導航到可以添加成員的螢屏。但為此,我需要傳遞 groupRoomId。
在這里,我正在導航以添加成員螢屏:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Add_Member(
groupRoomId: groupRoomId,
)));
現在這是我的添加成員螢屏:
class Add_Member extends StatefulWidget {
final String groupRoomId;
Add_Member({required this.groupRoomId});
_Add_Member createState() => _Add_Member();
}
class _Add_Member extends State<Add_Member> {
QuerySnapshot<Map<String, dynamic>>? searchResultSnapshot;
QuerySnapshot<Map<String, dynamic>>? Snapshot;
bool isLoading = false;
bool haveUserSearched = false;
bool isChecked = false;
DatabaseMethods databaseMethods = new DatabaseMethods();
var searchEditingController = TextEditingController();
final DocumentReference <Map<String, dynamic>>? documentReference = FirebaseFirestore.instance.doc("groups/$groupRoomId");
addremovemember(userName){
documentReference?.snapshots().listen((datasnapshot){
if (datasnapshot.data()!.containsValue("$userName")){
FirebaseFirestore.instance
.collection('groups')
.doc('$groupRoomId')
.update({"users" : FieldValue.arrayRemove(["$userName"])});
}
else{
FirebaseFirestore.instance
.collection('groups')
.doc('$groupRoomId')
.update({"users" : FieldValue.arrayUnion(["$userName"])});
}
});
}
......
那么在 DocumentReference $groupRoomId 中發生了什么顯示未識別名稱錯誤。我的最終目標是能夠添加和洗掉錯誤(將來也可以),正如您在 addremovemember 函式中看到的那樣。如果您能幫助我,我將不勝感激。
uj5u.com熱心網友回復:
之所以發生這種情況,是因為您正在參考groupRoomId構建范圍之外的內容。
為此,請使用關鍵字widget
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Add_Member(
groupRoomId: widget.groupRoomId,// <-here
)));
uj5u.com熱心網友回復:
@戴維斯是對的。您正在參考構建范圍之外的 groupRoomId。
為此,請使用widget關鍵字訪問它。
替換.doc('$groupRoomId')為.doc(widget.groupRoomId)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492833.html
