簡體   English   中英

如何解決~在null.~上調用了getter'documentID'?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM