ReactNative App中的Google Firebase认证



我正在开发一个应用程序,我喜欢实现Firebase作为认证系统。

当我试图修改保存用户的firestore集合时,我试图设置与Google提供商的身份验证时,我的问题出现了。我的代码如下:

export const loginWithGoogle = () => {
const navigation = useNavigation();
useEffect(() => {
setTimeout(() => {
navigation.navigate('/RegisterScreen');
}, 10000);
}, []);
return () => {
return firebase
.auth()
.signInWithPopup(Providers.google)
.then(async result => {
//console.log(result.credential.accessToken);
const user = result.user;
console.log(user);
//This 2 lines below doesn't work to get the colletion.
db.('users').setItem('userid', user!.uid);
collection.(db,'users').setItem('photoURL', user!.photoURL);
//TODO if userid exists IN USERS db then use update IF NULL use set
await db.collection('users').doc(user!.uid).update({
// id: user.uid,
name: user!.displayName,
email: user!.email,
phone: user!.phoneNumber,
photoURL: user!.photoURL,
});
})
.then(() => {
navigation.navigate('ProtectedScreen');
})
.catch(err => {
console.log(err);
});
};
};

所以我猜我的错误来自于不知道如何管理保存在firestore上的数据。

如能帮忙提前表示感谢!

这里有一些东西需要清除:

你可以合并数据。没有必要从Firestore读取/获取它来检查它是否存在,并且只有在它不在的情况下才保存它。您需要支付readswrites的费用。最后,不检查代码是否存在,直接写代码会更便宜。

还有这里的代码:

db.('users').setItem('userid', user!.uid);
collection.(db,'users').setItem('photoURL', user!.photoURL);

特别是db.(collection.(看起来不太好。即使是,也不是为了获取数据,而是为了保存数据。

你能说明你使用的Firebase SDK是版本8还是9吗?另外,请检查一下这里的文档。

相关内容

  • 没有找到相关文章

最新更新