firebase暂时发送“没有用户记录”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了firebase暂时发送“没有用户记录”?相关的知识,希望对你有一定的参考价值。
我正在尝试制作一个简单的Web应用程序,并尝试使用护照实施Google身份验证(登录)并将用户存储在firebase身份验证中。
因此,在护照中间件中,我所做的是检查用户是否经过身份验证。如果是,则将用户传递给passport.serializeUser(user)
否则在firebase身份验证中创建用户。然后将用户传递给passport.serializeUser(user)
这是一个伪代码 -
if (user.authenticated){
done(null, user)
} else {
let promise = {'uid': user.uid, 'name': user.displayName, 'picture':user.photos[0].value};
firebase.auth().createUser({
uid: user.uid,
displayName: user.name,
photoURL: user.picture
});
console.log('i have submitted the user')
done(null, promise)
}
一切都很酷passport.serializeUser()
得到和用户调用done(null, user.uid)
。
这个问题在passport.deserializeUser()
时命中。
我没有在那里做任何想象,但只是通过使用firebase.auth().getUser(id)
从firebase获取用户,它给我一个错误。
这是我的passport.deserializeUser()
代码。
passport.deserializeUser((id, done) => { // when we get a request
console.log(`deser id ${id}`); // it shows the id we passed in serialize
firebase.auth().getUser(id).then( // gives an error T_T ?
(user) => {
console.log(`deser data ${user}`); // IT SHOULD GO HERE
done(null, user)
}).catch((error) => { // it goes here and throws an error at me
console.log(`here is the error on deser ${error}`);
// here is the error on deser Error: There is no user record corresponding to the provided identifier.
});
});
魔法发生在一段时间之后,passport.deserealizeUser()
现在再次被调用,因为某些原因它不会给我带来错误。
这是控制台日志..
i have submitted the user
ser // i do this call in passport.serializeUser()
deser id "someid"
here is the error on deser Error: There is no user record corresponding to the provided identifier.
deser id "someid"
deser data [object Object]
我的问题是,为什么火力基地会被推迟?是因为第一次没有加载firebase,第二次加载并成功找到用户?
但是可能是什么原因呢?任何猜测?
好吧,大家小睡后,我发现了我做错了什么,我没有处理来自...的承诺。
firebase.auth().createUser({
uid: user.uid,
displayName: user.name,
photoURL: user.picture
});
所以我做的就是......
firebase.auth().createUser({
uid: user.uid,
displayName: user.name,
photoURL: user.picture
}).then((user) => {
done(null, user);
});
当然需要一些时间来处理auth()
中的用户..
这就是为什么。
总是使用PROMISES。
以上是关于firebase暂时发送“没有用户记录”?的主要内容,如果未能解决你的问题,请参考以下文章
json 可视代码工作室Angular with Firebase片段
如何从 Firebase 获取数据到 Recyclerview 中的片段?
我无法从 firebase 获取下载网址()。请任何人帮助这是我的代码和错误。 (我正在使用片段)[重复]