適用于 firebase 資料庫 v8 而不是 v9。從我從其他用戶那里讀到的-Firebase v9,他們從使用動態轉向了物件?. 我無法在我的代碼中實作更改。你能看看嗎?此執行緒上的更多內容
StreamSubscription<DatabaseEvent>? rideStreamSubscription;
rideStreamSubscription = rideRequestRef!.onValue.listen((DatabaseEvent event) async {
if (event.snapshot.value["car_details"] != null) {
carDetailsDriver = (event.snapshot.value["car_details"].toString());
Provider.of<AppData>(context, listen: false)
.carDetailsDriverMainScreen(carDetailsDriver);
if (event.snapshot.value!["driver_id"] != null) {
rideReqAcceptDriver =
(event.snapshot.value["driver_id"].toString());
print("rideReqAcceptDriver $rideReqAcceptDriver");
}
}
錯誤開啟event.snapshot.value["car_details"]
無法無條件呼叫方法“[]”,因為接收者可以為“null”。嘗試使呼叫有條件(使用'?.')或向目標添加空檢查('!')
和上event.snapshot.value!["driver_id"]
沒有為“物件”型別定義運算子“[]”。嘗試定義運算子'[]'
uj5u.com熱心網友回復:
試試這個。
StreamSubscription<DatabaseEvent>? rideStreamSubscription;
rideStreamSubscription = rideRequestRef!.onValue.listen((DatabaseEvent event) async {
dynamic data = event.snapshot.value;
if (data["car_details"] != null) {
carDetailsDriver = (data["car_details"].toString());
Provider.of<AppData>(context, listen: false)
.carDetailsDriverMainScreen(carDetailsDriver);
if (data["driver_id"] != null) {
rideReqAcceptDriver =
(data["driver_id"].toString());
print("rideReqAcceptDriver $rideReqAcceptDriver");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464474.html
標籤:扑 镖 firebase-实时数据库
上一篇:Flutter的執行緒系統是什么
下一篇:Flutter錯誤:StreamProvider在添加空安全后需要initialData引數。來自firebase的StreamProvider<UserModel>
