Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Flutter上的Uri.https限制了我的url的长度_Firebase_Flutter_Dart - Fatal编程技术网

Firebase Flutter上的Uri.https限制了我的url的长度

Firebase Flutter上的Uri.https限制了我的url的长度,firebase,flutter,dart,Firebase,Flutter,Dart,我正试图向Firebase发出get请求。在我的url中,我必须发送非常长的认证令牌(超过900个字符)。我通过以下方式创建url: var url = Uri.https('firebaseio.com', '/mydb.json?auth=$authToken&orderBy="userId"&equalTo="$userId'); 但是当我打印url时,它并不完整(最后的字符总是缺少),因此请求不起作用。有人知道解决方法吗?您的U

我正试图向Firebase发出get请求。在我的url中,我必须发送非常长的认证令牌(超过900个字符)。我通过以下方式创建url:

 var url =
     Uri.https('firebaseio.com', '/mydb.json?auth=$authToken&orderBy="userId"&equalTo="$userId');

但是当我打印url时,它并不完整(最后的字符总是缺少),因此请求不起作用。有人知道解决方法吗?

您的URL实际上没有被剪切。在颤振中使用时,
print
功能可以限制其行长度。在别处寻找你的问题

这可能与您在字符串中滥用引号有关。在查询参数中有已打开但未关闭的引号是不正常的

您还可以使用
Uri.https
构造函数的可选第三个
queryParameters
参数来处理查询参数,从而改进此代码:

var url=Uri.https(
“firebaseio.com”,
“/mydb.json”,
{
“auth”:authToken,
“orderBy”:“userId”,
“equalTo”:“$userId”,
},
);

只是想知道为什么auth令牌有900个字符长?我不知道:(它是由Firebase.True创建的,从
equalTo=$userId')中删除最后一个双qoute)。$userid前面的一个可以提供一个可复制的示例吗?如果您使用
Uri.parse
而不是
Uri.https
,是否有帮助?请注意,
Uri.https
希望第二个参数是路径,并通过可选的
Map
参数提供查询字符串参数。@MoniqueSchreiner出于好奇,您能详细说明一下为什么查询参数不起作用吗?我的参数中确实有双引号。因为它将“更改为%22”,所以引号确实有问题。queryParameters不起作用,因为我需要URL中的双引号。但真正的问题是我没有关闭最后的双引号…因此,正确的方法是:final URL=Uri.parse(…orderBy=“userId”&equalTo=“$userId”));我还将其更改为Uri.parse。我正在推荐,以便您可以看到第一部分changed@MoniqueSchreiner您在解析后是否尝试过打印它?您应该看到它与使用查询参数做的事情是一样的。您可以按照自己的选择进行打印,我个人非常喜欢使用带有Uri.https的查询参数映射以更好的编码风格获得相同的结果。