2013-07-19 3 views
0

Принимая во внимание пример TodoMVC (https://github.com/firebase/angularFire/tree/gh-pages/examples/todomvc), если бы я должен был добавить аутентификацию в это приложение, как я мог бы обрабатывать видимость пользователя - то есть, если User1 добавляет объекты todo, я хотел бы убедиться что он доступен только для них, и если User2 входит в систему, он не видит элементы User1. Как я могу это достичь?angularFire и Authentication

В дополнение к этому - я думаю, этот второй вопрос имеет отношение к предыдущему - что является лучшим способом хранения todos и пользователей и видимость каждого todo?

ответ

2

Предполагая, что для аутентификации мы говорим о Simple Login, объект user будет содержать идентификатор (с пользовательским входом, вы определяете содержимое). Разделите todos вверх по идентификатору пользователя, сохранив их в отдельных путях.

/todos/user_id/... 

Тогда в правилах безопасности, после входа в систему, auth объект содержит идентификатор пользователя, так что вы можете обеспечить каждый путь пользователем:

"todos": { 
    "$user_id": { 
     ".read": "auth.id === $user_id", 
     ".write": "auth.id === $user_id", 
    } 
} 

Имейте в виду, что если вы собираетесь использовать несколько провайдеров, то вы также захотите разделить его провайдером, поскольку идентификаторы уникальны только для данного провайдера.

/todos/provider_id/user_id 
"todos": { 
    "$provider_id": { 
     "$user_id": { 
      ".read": "auth.id === $user_id && auth.provider === $provider_id", 
      ".write": "auth.id === $user_id && auth.provider === $provider_id", 
     } 
    } 
}