【问题标题】:AngularFire2 db.collection Adds key 2 TimesAngularFire2 db.collection 添加密钥 2 次
【发布时间】:2018-05-09 18:55:53
【问题描述】:

我按照本指南前往create a upload-component for Angular5 with AngularFire2

在视频的最后,他展示了一个代码 sn-p,允许将 url 路径添加到任何其他数据库 url。

this.snapshot = this.task.snapshotChanges().pipe(
    tap(snap => {
        console.log(snap);
        if (snap.bytesTransferred === snap.totalBytes) {
            // Update firestore on completion
            this.db.collection('photos').add({ path, size: snap.totalBytes }).then();
        }
    })
);

这会为照片创建一个 url 条目,但它会执行 2 次。知道这怎么可能吗?每次上传他都会创建 2 个随机密钥,里面的内容完全相同。

【问题讨论】:

    标签: firebase angular5 angularfire2


    【解决方案1】:

    试试这样的。添加到 downloadURL()

    中的集合
    import { AngularFireStorage } from 'angularfire2/storage';
    constructor(private storage: AngularFireStorage)
    
    uploadFile(file){
      const filePath = 'images/' + this.docRef + '/';
      const task = this.storage.upload(filePath, file);
    
      task.percentageChanges().subscribe(per => {
        console.log(per);
      });
    
      task.downloadURL().subscribe(url => {
        console.log(url);
        this.db.collection('photos').add('required data')
      }
    }
    

    【讨论】:

    • 我不知道为什么,但是 this.db.collection.add();每次在数据库中有 2 个条目时为我创建板条箱...这可能是 angularfire2 错误吗?
    • 可能是!一次完成,另一次在获取链接时(snap.bytesTransferred === snap.totalBytes)将被满足并执行。但不确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2021-02-23
    • 1970-01-01
    • 2016-11-01
    相关资源
    最近更新 更多