【问题标题】:Search with array in firebase realtime database在 firebase 实时数据库中使用数组搜索
【发布时间】:2021-04-03 11:38:06
【问题描述】:

云数据库为我们提供了实时数据库中的数组搜索方法。 云示例:

.collection("bids")
.where("title", "array-contains-any", ["xx", "yy", "zz"])

在上述查询中,我得到了标题为 xxyyzz 的所有出价。 我们如何在 firebase 实时数据库中进行这样的搜索。

【问题讨论】:

  • 是的,我为我工作,感谢您的帮助

标签: javascript firebase firebase-realtime-database


【解决方案1】:

实际上在实时数据库中没有像“数组包含”这样的东西。如果你有一个数组,你必须像普通的 JavaScript 数组一样处理。

你可以试试这个。

var ref = firebase.database().ref('/bids/title');
ref.once('value').then(function(snap) {
  var array = snap.val();
  for (var i in array) {
    var value = array[i]
    console.log(value);
    if (value == 'xx') { ... }
  }
});

【讨论】:

    【解决方案2】:

    实时数据库中没有等效的操作。

    此类用例的常用方法是设置从投标标题到投标的附加数据结构映射,如下所示:Firebase query if child of child contains a value

    然后,您可以使用单独的查询读取每个标题的出价 ID,通过另一个调用查找每个出价的其他属性,然后将所有结果合并到您的客户端应用程序代码中。这并不像您最初预期的那么慢,因为 Firebase pipelines the requests 通过单个 websocket 连接。

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多