繁体   English   中英

运算符“[]”没有为类型“Object”定义。 尝试定义运算符 '[]'

[英]The operator '[]' isn't defined for the type 'Object'. Try defining the operator '[]'

在 Dart 课程中,我试图从 **Firebase 实时 ** 数据库中检索骑手的位置。 但不断收到错误。

注意:我正在学习 2 年前的教程,但我的所有 SDK 都是最新的。 结果,我可能不知道新格式。 我将不胜感激任何帮助。

代码:

void FetchRideInfo(String rideID) {
    DatabaseReference rideRef =
        FirebaseDatabase.instance.ref().child('rideRequest/$rideID');

    rideRef.once().then((DatabaseEvent databaseEvent) {
      if (databaseEvent.snapshot.value != null) {
        double pickupLat = double.parse(
            databaseEvent.snapshot.value['location']['latitude'].toString()); /error here
      }
    });
  }

['location'] 上的错误是

The operator '[]' isn't defined for the type 'Object'.
Try defining the operator '[]'.

错误

databaseEvent是一个对象类型的属性。 不能在对象上调用索引器。 要使用它,您需要先施放它。

您需要使用 cast 运算符as 以下应该工作:

double pickupLat = double.parse((databaseEvent.snapshot.value as List)['location']['latitude'].toString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM