我正在尝试在我的应用中添加Facebook登录。其成功运行,但问题是每次我登录Facebook时,它都会更改Firestore数据。这是我的代码
onLoginSuccess(res: FacebookLoginResponse) {
const credential = firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken);
this.fireAuth.auth.signInWithCredential(credential)
.then((response) => {
console.log(response);
this.fb.api('me?fields=id,name,email,first_name,picture.width(720).height(720).as(picture_large)', []).then(profile => {
this.userData = {email: profile['email'], first_name: profile['first_name'], picture: profile['picture_large']['data']['url'], username: profile['name']}
console.log(this.userData);
console.log(this.fireAuth.auth.currentUser.uid);
let userData = {
email: this.userData.email,
username: this.userData.username,
photo: this.userData.picture,
phone: '',
point : '0',
uID: this.fireAuth.auth.currentUser.uid
};
this.angularFirestore.collection('AppUsers').doc(this.fireAuth.auth.currentUser.uid).set(userData); //Here is the problem
this.router.navigate(["/select"]);
})
});
}
我需要检查this.fireAuth.auth.currentUser.uid
是否已经有文档,因此它不会添加到数据库中。如果不可用,它将存储在数据库中。
所以我需要该方法如何检查docID是否存在?
答案 0 :(得分:0)
如果文档在Firestore上不存在,则可以通过某些方式获取信息。
关于社区here的问题,关于如何创建函数来检查Firestore数据库上的单个文档的所有逻辑-是Java,但我相信该逻辑会为您提供帮助。
在另一篇How can i get single document from Firestore with query (I'm using Ionic 4 )上,有一个查询也返回了一个文档,以防您认为此文档更适合您。
让我知道信息是否对您有帮助!
答案 1 :(得分:0)
如果您的问题是“每次我登录Facebook都会更改Firestore数据”,则可以使用“ 更新”代替“ 设置”。
这是关于它的文档:Firestore Update Doc