Firebase - 从推送的项目中检索数据

Firebase - Retrieving data from pushed items

我被困在如何从 firebase 检索推送数据的问题上。我已经设置了身份验证,并且有两个用户推送了一些数据:

{
  "deck" : {
    "-JkpwAnieKjQVsdtPD4m" : {
      "deckName" : "Deck 1",
      "color" : "Red",
      "user" : "simplelogin:1"
    },
    "-Jkq4unexm-qwhO_U2YO" : {
      "deckName" : "Deck 2",
      "color" : "Blue",
      "user" : "simplelogin:1"
    },
    "-Jkq5-II1q5yM6w3ytmG" : {
      "deckName" : "Deck 3",
      "color" : "Green",
      "user" : "simplelogin:6"
    }
  }
}

那我运行:

deckRef.once('value', function(dataSnapshot) {
  console.log(dataSnapshot.val());
});

其中 returns 这 3 个使用 push() 生成的密钥推送。

firebase 似乎有一种方法可以说检索由 "simplelogin:1"(所以红色和蓝色)创建的所有颜色条目,但我就是想不通。

您可能正在寻找 Firebase 的查询,它允许您:

deckRef.orderByChild('user').equalTo('simplelogin:1').on(...

不要忘记将 user 添加到您的安全规则中的 .indexOn

参见:

像这样查询你的数据

deckRef.orderByKey().once('child_added', function(dataSnapshot) {
      console.log(dataSnapshot.val());
});

注意:orderByKey() 适用于 child_added 事件类型

Reference