2015-06-10 1 views
1

Привет У меня есть список пользователей в моей базе данных fb. Идентификатор пользователя автоматически генерируется после успешной регистрации, и каждая пользовательская запись имеет имя, адрес электронной почты и uid. Кроме того, каждое из этих свойств индексируется в/index, так что я могу легко найти идентификатор пользователя, учитывая их uid.Как установить правила firebase на основе идентификатора пользователя базы данных (не uid)

Согласно документации, firebase говорит использовать запись: $ user_id === auth.uid

Как я могу сделать это, используя сгенерированный идентификатор вместо UID?

вот фб дб: https://medviz.firebaseio.com/

ответ

4

В ваших пользователей объекта будет как этот

users : { 
user1234abc:{   
     name: "abc"   
    },      
    user2434dbcc:{   
     name: "abc"   
    } 
} 

пользователей вы будете иметь много unique key/user nodes в приемлю пользователей, например user1234abc, user2434dbcc

Этот уникальный ключ может быть назван любым variable в правилах, которые не нужно называть его $user_id, вы можете называть его чем угодно, например, вы можете n AME переменную $any_variable для уникальных пользовательских ключей

и в auth.id всякий раз, когда пользователь успешно аутентифицировать тот же уникальный идентификатор в auth.uid так что вы можете в любом месте по математике, которые auth.uid при редактировании информации, связанной с этим пользователем

Например, если auth.uid содержит user1234abc и если user1234abc редактирует этот объект user1234abc:{name: "abc" } THN accordind к .WRITE правила он сможет

Смотрите обновленный вид ниже

Обновление визуальной иерархии:

--schema-- 
users : { 
      ________________ 
      | 
    user1234abc:{   | 
     name: "abc"   | 
    },      | 
    user2434dbcc:{   | 
     name: "abc"   | 
    }      | 
}     key can be name as any variable in rules 
          | 
-- rules-- 
          | 
{       | 
    "rules": {    | 
    "users": {    | 
     ".read": true,  | 
      ________________|___________ 
      |       | 
     \|/       | 
     "$any_variable": {    \|/  
     ".write": "$any_variable === auth.uid" 
     } 
    } 
    } 
}      
+4

Я хотел бы дважды upvote для ASCII искусства. :-) –

+0

@FrankvanPuffelen это было просто для примера, я знаю, что в нем есть что-то подозрительное;) –

+0

@FrankvanPuffelen, если о стрелках thn здесь вы идете: P http://stackoverflow.com/questions/27637609/understanding-passport- serialize-deserialize/27637668 # 27637668 –

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