簡體   English   中英

顫振實時數據庫'InternalLinkedHashMap<object?, object?> '這個錯誤</object?,>

[英]flutter realtime database 'InternalLinkedHashMap<Object?, Object?>' this error

我收到這個錯誤。 我非常生氣。

Stream<List<TestModel>> awayStream() async* {
List<TestModel> retVal = <TestModel>[];
_categoryCollectionReferance.once().then((DataSnapshot dataSnapshot) {
  print(dataSnapshot.value);
  retVal.add(TestModel.fromJson(dataSnapshot.value));
  return retVal;
});}

錯誤: [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: type '_InternalLinkedHashMap<Object?, Object?>' is not a subtype of type 'Map<String, dynamic>'

print(dataSnapshot.value); -- this perfectly working.

但我不能添加到列表中。 這是我的模型代碼;

TestModel.fromSnapshot(DataSnapshot dataSnapshot) {
awayCurrentUser = dataSnapshot.value['awayCurrentUser'] ?? 0;
awayDate = dataSnapshot.value['awayDate'] ?? 0;
awayID = dataSnapshot.value['awayID'] ?? '';
awayMaxUser = dataSnapshot.value['awayMaxUser'] ?? 0;
awayPhotoUrl = dataSnapshot.value['awayPhotoUrl'] ?? '';
awayPrice = dataSnapshot.value['awayPrice'] ?? 0;
awayTitle = dataSnapshot.value['awayTitle'] ?? '';
awayUserPrice = dataSnapshot.value['awayUserPrice'] ?? 0;
awayWinner = dataSnapshot.value['awayWinner'] ?? '';
awayWinnerName = dataSnapshot.value['awayWinnerName'] ?? '';
isEnabled = dataSnapshot.value['isEnabled'] ?? true;
isFinished = dataSnapshot.value['isFinished'] ?? false;
isStatus = dataSnapshot.value['isStatus'] ?? true;

}

這是因為 datasnapShot 不是 'Map<String, dynamic>' 類型或其子類型在訪問內部對象之前對其進行解碼

像這樣嘗試

dataSnapshotDecoded=json.decode(dataSnapshot.value);

 retVal.add(TestModel.fromJson(dataSnapshotDecoded))

我有同樣的問題,在其他答案中看到的json.decode()jsonDecode()json.decode(json.encode())方法沒有幫助我,這就是我解決它的方法:

final value = Map<String, dynamic>.from(event.snapshot.value! as Map<Object?, Object?>);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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