2016-11-18 2 views
1

Это база данных, например:Как реализовать пользовательскую безопасность в базе данных firebase?

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

Я хочу только те пользователи, чтобы читать сообщения, чей UID равен Uid области Message#.

Структура базы данных, приведенная в документации по firebase (т.е. использование сообщений на основе идентификаторов пользователей в базе данных, где узел каждого сообщения представляет собой 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, он не получит мне uid человека, который получил сообщение. Это то, что я упомянул в вопросе. –

+0

Не могли бы вы рассказать немного больше, чего бы вы хотели достичь? Я не понимаю эту проблему. – entwicklerfuchs

Смежные вопросы