【问题标题】:how to filter orderby nested list firebase to flutter App with rest database realtime如何过滤orderby嵌套列表firebase以实时使用rest数据库来flutter App
【发布时间】:2022-01-08 19:01:21
【问题描述】:

我在嵌套列表中使用 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;
}

【问题讨论】:

    标签: firebase flutter firebase-realtime-database


    【解决方案1】:

    您正在尝试在其list_produk/seller_id 属性上对每个订单进行索引和排序。

    但是,如果我查看您的 JSON 数据,订单下没有 list_produk/seller_id 属性。只有list_produk/1/seller_id,大概是list_produk/0/seller_id。这些与您在规则/查询中使用的不同,因此查询不返回任何结果。

    Firebase 实时数据库查询功能在单个平面节点列表上运行。您排序/过滤的值必须存在于每个直接子节点下的固定路径中。

    因此,在您的示例中,您可以搜索所有订单,例如 id_user,或者您可以搜索特定订单中产品的 seller_id,但您无法搜索产品的所有卖家所有订单。

    换句话说:您当前的数据结构可以很容易地找到每个订单的产品和卖家,但是它并不能在所有用户中找到每个产品的订单。为此,您需要添加一个额外的数据结构,通常称为反向索引,将每个 seller_id 映射到包含该卖家产品的订单。

    有关更多信息,我建议您查看:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 2021-03-08
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      相关资源
      最近更新 更多