這個問題在這里已經有了答案: Firebase Firestore 錯誤:未為“物件”類定義運算子“[]” 4 個答案 更新云 Firestore 后:未為“物件”型別定義運算子“[]”。嘗試定義運算子'[]' 2答案 14 小時前關閉。
我有這個功能
UserData _userDataFromSnapshot(DocumentSnapshot snapshot) {
return UserData(
uid: uid,
userName: snapshot.data()['userName'],
userEmail: snapshot.data['userEmail'],
phoneNumber: snapshot.data['phoneNb']
);
}
但我在括號上出錯了
The operator '[]' isn't defined for the type 'Object'.
問題的更新者
我也有集合的功能和實體
final CollectionReference users = FirebaseFirestore.instance.collection('users');
// get user doc stream
Stream<UserData> get userData {
return users.doc(uid).snapshots()
.map(_userDataFromSnapshot);
}
當我讀取資料時:
Widget profile(context, user){
return StreamBuilder<UserData>(
stream: DatabaseService(uid: user.uid).userData,
builder: (context, snapshot) {
if(snapshot.hasData){
UserData userData = snapshot.data;
print(userData.userName);
} else print('no data');
}
);
}
我能做些什么?
我正在使用版本:
Flutter 2.0.1 ? 通道穩定 ? https://github.com/flutter/flutter.git 框架 ? 修訂版 c5a4b4029c(1 年零 1 個月前) ? 2021-03-04 09:47:48 -0800 引擎 ? 修訂版 40441def69工具 ? Dart 2.12.0
uj5u.com熱心網友回復:
您正在以兩種不同的方式處理資料。其中一個(這是第一個)是正確的,但其他方式是錯誤的。獲得檔案快照后,從中獲取資料并將其用作分配機制。
你可以試試下面的代碼。
更多資訊 --> https://firebase.flutter.dev/docs/firestore/usage/
UserData _userDataFromSnapshot(DocumentSnapshot document) {
final data = document.data()! as Map<String, dynamic>;
return UserData(
uid: uid,
userName: data['userName'],
userEmail: data['userEmail'],
phoneNumber: data['phoneNb']
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446120.html
