【问题标题】:Firebase restrict childs return by ref [duplicate]Firebase通过ref限制孩子返回[重复]
【发布时间】:2017-06-29 16:31:13
【问题描述】:

我有这样保存的数据:

users : {
   '1' : {
      'name':'jack',
      'old':21,
      'paymentCard':{
        ....
      }
   }
}

当我这样获取我的用户时:

ref.child('users/1').once('value', snapshot => {
   console.log(snapshot.val()); 
});

结果包含支付卡。

有没有办法限制孩子返回?

【问题讨论】:

  • 限制方式是什么意思?
  • 我只想在结果中获得“姓名”和“旧”,而不是“支付卡”
  • 正如@Vivek 所说:没有办法返回部分节点。除了他的回答,请看我的解释:stackoverflow.com/questions/38648669/…

标签: node.js firebase firebase-realtime-database


【解决方案1】:

这在您当前的数据结构中是不可能的。如 Firebase 文档中所述:数据结构的最佳实践@https://firebase.google.com/docs/database/ios/structure-data#best_practices_for_data_structure

当您在数据库中的某个位置获取数据时,您还可以检索 它的所有子节点。此外,当您授予某人阅读或 在数据库中的节点上写入访问权限,您还授予他们访问权限 该节点下的所有数据。因此,在实践中,最好保持 您的数据结构尽可能平坦。

因此,理想情况下,您的数据结构应该如下:

users : {
   '1' : {
      'name':'jack',
      'old':21,
   }
}
paymentCard: {
   '1' : { // user id
        ....
   }
}

这样,当您在 users/1 获取数据时,您只会获得 nameold 值,并且要获取支付卡详细信息,您需要访问 paymentCard/1

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 2018-01-25
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多