Firebase通过ref限制孩子返回

时间:2017-02-11 09:40:51

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

我保存的数据如下:

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

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

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

结果包含paymentCard。

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

1 个答案:

答案 0 :(得分:3)

目前的数据结构无法实现。如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