[英]How to solve ˜The getter 'documentID' was called on null.˜?
我有這個帶有作用域模型的函數,其中我希望在按下按鈕時有一個 firebase 增量到快照,但它返回~在 null 上調用了 getter 'documentID'。~,它改變了我的圖標的狀態,但數字不遞增。 如果我給出文檔的名稱,它工作正常,但我不想指定它。 關於什么可能是解決方案的任何想法?
void main() {
runApp(EaiCasimiro());
}
class EaiCasimiro extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScopedModel<LikesModel>(
model: LikesModel(),
child: MaterialApp(
title: "E aí, Casimiro?",
home: HomeScreen(),
debugShowCheckedModeBanner: false,
)
);
}
}
class LikesModel extends Model {
DocumentSnapshot snapshot;
bool _liked = true;
static LikesModel of(BuildContext context) =>
ScopedModel.of<LikesModel>(context, rebuildOnChange: true);
bool isLiked() => _liked;
void pressed(){
_liked = !_liked;
notifyListeners();
}
void changeLikes() {
Firestore.instance
.collection("lanchonetes")
.document(snapshot.documentID)
.updateData({'likes': FieldValue.increment(_liked ? -1 : 1)});
}
}
由於您在這里有很多代碼,但沒有注意到發生錯誤的特定行,我猜它發生在這里:
Firestore.instance
.collection("lanchonetes")
.document(snapshot.documentID)
.updateData({'likes': FieldValue.increment(_liked ? -1 : 1)});
我花了一段時間才找到您定義snapshot
,但我在這里找到了它:
DocumentSnapshot snapshot;
由於您在聲明時沒有分配值,因此它的初始值為 null。 因此,當您在這樣的查詢中使用它時: snapshot.documentID
,您會收到該錯誤。
確保在使用之前定義snapshot
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.