我是新手,我正在通过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"'
我不了解此行为,因为两个代码段均应正常工作。
感谢您的帮助。 预先感谢。
答案 0 :(得分:1)
Flutter / Dart可以接受单引号和双引号作为字符串定界符,而Firebase REST API仅接受双引号。
因此,虽然两个代码片段在Dart / Flutter中看起来都一样,但是Firebase服务器无法将第一个代码片段中的'
字符识别为字符串定界符,并且不知道如何处理参数因此。
解决方案是始终在字符串内部使用"
,从而在您的Flutter / Dart代码中使用'
作为(外部)字符串定界符。