如何通过嵌套列表 firebase 过滤 order 以使用 rest 数据库实时 flutter App
how to filter orderby nested list firebase to flutter App with rest database realtime
我在嵌套列表中使用 firebase 数据库过滤器 orderBy seller_id,为什么结果为空?谢谢
:rules Firebase
var url = Uri.parse(
'https://MeDatabase.firebasedatabase.app/orders.json?auth=$authToken&orderBy="list_produk/seller_id"&equalTo="$idUser"');
try {
final response = await http.get(url);
if (response.statusCode >= 400) {
throw EasyLoading.showError('Cek Koneksi Internetmu!');
}
final extractData =
convert.jsonDecode(response.body) as Map<String, dynamic>;
print('inii orderan');
print(extractData);
if (extractData == null) {
return _orders = [];
}
} catch (e) {
throw e;
}
您正在尝试对 list_produk/seller_id
属性.
上的每个订单进行索引和排序
但是我看你的JSON数据,订单下没有list_produk/seller_id
属性。只有 list_produk/1/seller_id
,大概 list_produk/0/seller_id
。这些与您在 rules/query 中使用的不同,因此查询 returns 没有结果。
Firebase 实时数据库查询在单个平面节点列表上运行。您 order/filter 的值必须存在于每个直接子节点下的固定路径中。
因此在您的示例中,您可以搜索 id_user
上的所有订单,或者您可以搜索特定订单中的 seller_id
产品,但您无法搜索所有订单中的所有产品卖家。
换句话说:您当前的数据结构可以很容易地找到每个订单的产品和卖家,但是它并不能在所有用户中找到每个产品的订单。为此,您需要添加一个额外的数据结构,通常称为反向索引,该索引从每个 seller_id
映射到包含该卖家产品的订单。
有关这方面的更多信息,我建议查看:
- Firebase Query Double Nested
我在嵌套列表中使用 firebase 数据库过滤器 orderBy seller_id,为什么结果为空?谢谢
var url = Uri.parse(
'https://MeDatabase.firebasedatabase.app/orders.json?auth=$authToken&orderBy="list_produk/seller_id"&equalTo="$idUser"');
try {
final response = await http.get(url);
if (response.statusCode >= 400) {
throw EasyLoading.showError('Cek Koneksi Internetmu!');
}
final extractData =
convert.jsonDecode(response.body) as Map<String, dynamic>;
print('inii orderan');
print(extractData);
if (extractData == null) {
return _orders = [];
}
} catch (e) {
throw e;
}
您正在尝试对 list_produk/seller_id
属性.
但是我看你的JSON数据,订单下没有list_produk/seller_id
属性。只有 list_produk/1/seller_id
,大概 list_produk/0/seller_id
。这些与您在 rules/query 中使用的不同,因此查询 returns 没有结果。
Firebase 实时数据库查询在单个平面节点列表上运行。您 order/filter 的值必须存在于每个直接子节点下的固定路径中。
因此在您的示例中,您可以搜索 id_user
上的所有订单,或者您可以搜索特定订单中的 seller_id
产品,但您无法搜索所有订单中的所有产品卖家。
换句话说:您当前的数据结构可以很容易地找到每个订单的产品和卖家,但是它并不能在所有用户中找到每个产品的订单。为此,您需要添加一个额外的数据结构,通常称为反向索引,该索引从每个 seller_id
映射到包含该卖家产品的订单。
有关这方面的更多信息,我建议查看:
- Firebase Query Double Nested