0

Мы добавляем роли генерации в firebase. наша структура сообщений, как это:Как извлечь данные из переменных узла для проверки ролей пользователей в firebase

/users/<userId>/rooms/<roomId>/ 

RoomID является пользовательской строкой, которая конкатенации как пользователей (отправитель-ресивер):

, например:

/users/4hkjheqrnv501eltbg1px/rooms/4hkjheqrnv501eltbg1px-638red8osipedem08j1a6/ 

я хочу, чтобы дать доступ на запись этот номер только для пользователейId's 4hkjheqrnv501eltbg1px или 638red8osipedem08j1a6 (который указано в номере)

могу ли я извлечь из userId переменную roomId и проверить, находится ли один из них внутри объекта auth.

Я пробовал этот способ, но не работало:

"rooms": { 
      "$roomId": { 
      ".write": "auth != null && auth.uid.contains($roomId)" 
      } 

так писать доступ будет предоставлен в эту комнату только для AUTH пользователей 638red8osipedem08j1a6 4hkjheqrnv501eltbg1px

Любые идеи, как это изменить?

+0

Просто переверните его так: «.WRITE»: «AUTH = NULL &&! $ roomId.contains (auth.uid) "??? –

+0

На самом деле это не безопасно. coz-событие, если я получаю отдельную подстроку из этого auth, это даст доступ к записи. (например, если у меня есть только первая буква «4», у нее будет доступ на запись – rayman

ответ

0

Я думаю, вам нужно разделить ваш адрес номера в массив и найти, если идентификатор пользователя находится в массиве как:

"rooms": { 
     "$roomId": { 
     ".write": "auth != null && $roomId.split('-').indexOf(auth.uid) > -1" 
     } 
} 
+1

Я не думаю, что это сработает, потому что идентификатор пользователя также может содержать «-». –

+0

также: Симуляция не удалась - Строка 20: Нет такой метод/свойство «split». – rayman

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

  • Нет связанных вопросов^_^