Вы можете начать с создания анонимного входа с помощью Firebase, а затем сохранить этот uid " ключ к какому-то сеансу или файлу cookie (в зависимости от того, с какой структурой вы работаете). Хотя клиент является анонимным, вы можете связать свои сохраненные данные с этим анонимным «uid».
Чтобы передать данные пользователю после входа в систему, вам необходимо использовать onAuth() Firebase. слушатель. Это уведомит вас, когда данные аутентификации пользователя изменятся. Получив новый аутентифицированный uid, вы можете связать сохраненные данные с этим новым uid и удалить анонимный сеанс.
Вот модифицированный пример из документации Firebase:
var firebaseRef = new Firebase('https://samplechat.firebaseio-demo.com');
firebaseRef.onAuth(function(authData) {
if (authData) {
// Client is logged in, so check if it's anonymous or a real user
if (authData.provider === 'anonymous') {
// user is anonymous
// save authData.uid to some local session info, to keep track of data
} else {
// user is logged in
// transfer any data that you had stored from the anonymous session to
// this new authUser.uid
} else {
// Client is unauthenticated
// This would be a good spot to create the anonymous login
firebaseRef.authAnonymously(function(error, authData) {
if (error) {
// handle login failure
} else {
// you are now anonymously logged in, but you really don't need to do anything
// here, because your onAuth() listener is already going to catch this auth change
}
}
});
Firebase не сообщает вам, каким был предыдущий uid, когда пользователь меняет свою информацию для аутентификации, поэтому вам действительно нужно где-то хранить этот анонимный uid. Вы также можете сделать все это, даже не создавая анонимный вход, просто сохраняя данные сеанса до тех пор, пока пользователь не войдет в систему, но анонимный вход обеспечивает большую согласованность.
person
Dustin
schedule
10.11.2014