Firestore和Ionic 3

时间:2018-02-06 23:52:13

标签: angular ionic3 google-cloud-firestore

我已经花了几个小时试图了解如何更新Firestore数据收集,我几乎已经完成了,但是以下功能存在问题。这是Ionic 3,AngularFire2和Firestore应用程序的一部分,我正在尝试将用户配置文件中的照片上传到存储(Firebase),这部分工作正常。但是,当我尝试更新Firestore数据收集中的“Photo Url”时,我第一次调用该函数时不会这样做,这是在第二次请求时完成的。

这是功能:

saveToDatabase(uploadSnapshot) {
   this.actuser = firebase.auth().currentUser.uid;
   let userRef = this.afs.collection('usuarios').ref.where('uid', '==', this.actuser);
    userRef.get().then((result) => {
      result.forEach(doc => {
       this.userId = doc.id
      })
    })
    var uid = this.userId;
    var actual = this.afs.collection('usuarios').doc(uid).update({ foto: uploadSnapshot.downloadURL});
    return (uid);     
}

正在发生的事情是,我第一次调用此函数时,永远不要进入userRef.get()部分,所以我永远不会更新this.userId。并获得消息错误功能:

  

CollectonReference.doc()要求其第一个参数为string类型,但未定义

这是正确的,因为它永远不会进入userRef.get()。我在控制台上看到它在更新后得到了值:

var actual = this.afs.collection('usuarios').doc.(uid).update ...

任何人都可以告诉我在尝试更新集合之前我需要做些什么来获取this.userId?

希望有人理解我,提前感谢任何评论。

0 个答案:

没有答案