Flutter:火力基地过滤

时间:2020-06-17 18:41:16

标签: firebase flutter firebase-realtime-database google-cloud-functions

我是新手,我正在通过Google的Firebase检索数据。 我遇到错误。

[错误:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常:类型 'String'不是'index'的'int'类型的子类型

根据我的代码是正确的。

  var url = "https://<MyFirebaseProjectId>.firebaseio.com/products.json?auth=$authToken&orderBy='creatorId'&equalTo='$userId'"

但是当我交换单引号和双引号时,代码可以正常工作。

 var url = 'https://<MyFirebaseProjectId>.firebaseio.com/products.json?auth=$authToken&orderBy="creatorId"&equalTo="$userId"'

我不了解此行为,因为两个代码段均应正常工作。

感谢您的帮助。 预先感谢。

1 个答案:

答案 0 :(得分:1)

Flutter / Dart可以接受单引号和双引号作为字符串定界符,而Firebase REST API仅接受双引号。

因此,虽然两个代码片段在Dart / Flutter中看起来都一样,但是Firebase服务器无法将第一个代码片段中的'字符识别为字符串定界符,并且不知道如何处理参数因此。

解决方案是始终在字符串内部使用",从而在您的Flutter / Dart代码中使用'作为(外部)字符串定界符。