2016-11-18 44 views
1

例如,這是數據庫:如何在Firebase數據庫中實現基於用戶的安全性?

"Messages" : { 
     "Message1" : { 
       "Uid" : "sampleid1" 
       "Text" : "hi" 
       }, 
     "Message2" : { 
       "Uid" : "sampleid2" 
       "Text" : " hello" 
       } 
    } 

我想只有那些用戶讀取其UID等於Message#Uid場的消息。

Firebase文檔中給出的數據庫結構(即,在數據庫中使用基於用戶ID的消息,其中每個消息的節點表示發送消息的用戶的uid)並不能達到我的項目目標,因爲我每次用戶發送消息時都需要知道發送消息的用戶的uid。

因此,請建議有助於我完成我在這個問題中提到的任務的規則

另外,當我在數據庫的上述結構中應用某些規則時,我無法讀取任何數據,因爲'firebase規則是不是過濾器「。

請忽略上面示例中寫入的json的語法和格式,因爲它僅供參考

請幫忙!

回答

0

結構數據,以便:

"messages" : { 
    "<receiver_uid>" : { 
     "msg_1" : { 
     "text" : "Hello world...", 
     "uid" : "<sender_uid>" 
     } 
     // more msgs for this receiver ... 
    } 
} 

規則應該像

{ 
    "rules" : { 
    "messages" : { 
     "$receiver" : { 
     ".read" : "auth.uid == $receiver", // only receiver shall read 
     ".write" : "auth != false" // any authenticated user can write 
     } 
    } 
    } 
} 
+0

不,先生,這個結構不會爲我工作。因爲我需要將更改後的監聽器附加到消息上,然後將孩子添加到接收方uid的監聽器中,所以它不會將我接收到該消息的人員的身份提供給我。這是我在問題中提到的。 –

+0

你能告訴更多一點你實際上想達到什麼嗎?我不明白這個問題。 – entwicklerfuchs

相關問題