我保存的数据如下:
users : {
'1' : {
'name':'jack',
'old':21,
'paymentCard':{
....
}
}
}
当我像这样取用我的用户时:
ref.child('users/1').once('value', snapshot => {
console.log(snapshot.val());
});
结果包含paymentCard。
有没有办法限制孩子回来?
答案 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
处获取数据时,您只会获得name
和old
值,并且要获取付款卡详细信息,您需要访问paymentCard/1
。