2013-07-02 45 views
4

我試圖找出一種方法來模擬Firebase中的以下數據,但我不確定它是否可行。Firebase中的受保護內容可能嗎?

說我有一個帖子列表。其中一些我想標記爲私人的,其中作者指定他們的朋友列表的成員可以查看它。這是否可能,如果是這樣的話,可以不分別定義帖子和私人帖子。

回答

5

您可以指定使用security rules可以讀取和寫入哪些文章。舉例來說,如果我有這樣的數據集:

{ 
    "users": { 
     "me": { 
      "friends" { "jack", "mary" } 
     }, 
    }, 
    "posts": { 
     "post1": { 
      "owner": "me", 
      ... 
     } 
    } 
} 

我可以使用安全規則如下所示:

{ 
    "posts": { 
     "$post_id": { 
      // any friend can read my post 
      ".read": "auth.uid === data.child('owner').val() || root.child('users/'+data.child.owner.val()+'/friends/'+auth.uid).exists()", 
      // only I can write it 
      ".write": "auth.uid === data.child('owner').val()" 
     } 
    } 
} 

請記住,但是,安全規則不能被用作過濾。您無法迭代帖子列表,只希望找回朋友可以看到的列表 - 如果它遇到列表中不可讀的項目,則該操作將無法返回結果。

+0

因此,朋友可以查詢他可以看到的帖子嗎?並將實時工作來獲得這些帖子? – Georg

+0

這條規則適用於新數據嗎?當我們第一次插入? – BruceStackOverFlow

+0

不,不適用於創建新條目。 – Kato