1

我在 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。

4

1 回答 1

0

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

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;
}
于 2014-06-30T14:24:24.567 回答