Ionic Firestore如何检查Firestore中是否存在文档ID

时间:2020-02-12 14:11:34

标签: javascript angular ionic-framework google-cloud-firestore

我正在尝试在我的应用中添加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是否存在?

2 个答案:

答案 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