【问题标题】:How can I query in firebase using angularFire?如何使用 angularFire 在 Firebase 中查询?
【发布时间】:2014-08-17 18:00:07
【问题描述】:

我在 Firebase 中有一个简单的结构:

{
  "categorias" : {
    "categoria2" : {
      "subcategorias" : {
        "subcategoria4" : {
          "nome" : "Subcategoria 4"
        },
        "subcategoria6" : {
          "nome" : "Subcategoria 6"
        },
        "subcategoria5" : {
          "nome" : "Subcategoria 5"
        }
      },
      "icone" : "fa-cloud",
      "nome" : "Categoria 2"
    },
    "categoria1" : {
      "subcategorias" : {
        "subcategoria1" : {
          "nome" : "Subcategoria 1"
        },
        "subcategoria3" : {
          "nome" : "Subcategoria 3"
        },
        "subcategoria2" : {
          "nome" : "Subcategoria 2"
        }
      },
      "icone" : "fa-bolt",
      "nome" : "Categoria 1"
    }
  },
  "locais" : {
    "local1" : {
      "subcategorias" : {
        "subcategoria4" : true,
        "subcategoria1" : true
      },
      "nome" : "Local 1",
      "email" : "local1@loc1.com"
    }
  }
}

例如,我需要列出所有具有“subcateria1: true”的“locais”。我不知道该怎么做,因为它需要“localId”,但在查询中我不知道 localId。我只想要属于 subcategoria1 的所有“位置”。

我正在使用 AngularFire。

【问题讨论】:

  • 您可以使用 angularfire 的 $child 方法创建对部分数据的引用并从那里向下钻取 firebase.com/docs/angular/reference.html#child-key
  • 感谢您的帮助,但我需要的是一种在我的“位置”中搜索并仅过滤具有“subcateria1:true”的位置的方法,我只使用 $child( ) 如果我知道我需要迭代什么“id”,但事实并非如此。
  • 查看 Firebase 博客,has a great article 介绍了从 SQL 查询转换为 Firebase 思维方式。
  • 感谢您的帮助@Kato

标签: angularjs firebase firebase-realtime-database angularfire nosql


【解决方案1】:

我找到了解决办法,但不知道是不是正确的方法:

findBySubcategoria: function(subcategoriaId) {                  
    var result = {};
    locais.$on("value", function(snap){
        var keys = snap.snapshot.value;

        angular.forEach(keys, function(key, i){                         
            if(key.subcategorias[subcategoriaId]){
                result[i] = locais.$child(i);
            }
        }); 

    });
    return result;
}

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2017-01-07
    • 2020-05-12
    相关资源
    最近更新 更多