gpt4 book ai didi

flutter - Flutter:使用带有http请求的Firebase实时数据库实现分页

转载 作者:行者123 更新时间:2023-12-03 03:50:37 25 4
gpt4 key购买 nike

如何在Flutter中使用HTTP请求在实时数据库中实现分页?我尝试了以下操作,但返回了错误。

  Future<List<News>> fetchNews() async {
final response = await http.get("https://<project-id>.firebaseio.com/posts.json?orderBy='t'&limitToFirst=10");
Map map = json.decode(response.body);
map.forEach((NewsId, NewsData) {
_list.add(News.fromJson(NewsData));
});
return _list;
}
返回的错误是:
I/flutter (18683): {
I/flutter (18683): "error" : "orderBy must be a valid JSON encoded path"
I/flutter (18683): }
我试图用以下内容替换网址: https://project-id.firebaseio.com/posts.json?orderBy=(backslash)"t(backslash)"&limitToFirst=10
但是我收到的错误是这样的:
I/flutter (18683): {
I/flutter (18683): "error" : "Index not defined, add \".indexOn\": \"t\", for path \"/posts\", to the rules"
I/flutter (18683): }
关于如何实现分页的任何帮助都将有所帮助。我也不介意回到使用包而不是http请求。如果这两种方法之间存在显着差异,我将不胜感激。
我的数据库结构如下:
<project-id>
|__posts
|____(unique key1)
|_____field1
|_____field2
|_____field3
|____(unique key2)
|____(unique key3)
提前致谢。

最佳答案

你快到了。第一个错误是因为要订购的属性名称必须是带双引号的字符串。单引号是 Not Acceptable ,因此转义"的方式确实是正确的。
新的错误是因为您需要在数据库的安全规则中定义一个索引,以便服务器知道对数据库进行排序/筛选的内容。如果查看indexing data上的文档并从错误消息中获取信息,则结果将变为:

{
"rules": {
"posts": {
".indexOn": "t"
}
}
}
顺便说一句:通常,我通常首先在浏览器中运行REST查询,然后再将其复制到我的代码中。这样,您就可以知道错误是来自Firebase还是来自Flutter代码中的调用方式。

关于flutter - Flutter:使用带有http请求的Firebase实时数据库实现分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63598947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com