2017-02-11 56 views
0

孩子的回报,我有救像这样的数据:火力地堡限制由参

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

当我取回我的用户是这样的:

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

结果包含paymentCard。

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

+0

这是什么意思一种限制? –

+0

我想在我的结果中只获取'name'和'old',而不是'paymentCard' –

+0

正如@Vivek所说:没有办法返回部分节点。除了他的答案,请参阅我的解释在这里:http://stackoverflow.com/questions/38648669/firebase-how-to-structure-public-private-user-data/38649032#38649032 –

回答

3

这对于您当前的数据结构是不可能的。正如在火力地堡文档中提到:对于数据结构的最佳实践@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