2017-02-11 54 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