gpt4 book ai didi

swift - 通过多次上传更新 Firebase 数据库对象

转载 作者:行者123 更新时间:2023-11-30 11:11:01 29 4
gpt4 key购买 nike

我有一个帖子对象,它有两个部分(1)照片和(2)视频。在发布流程中,用户选择图像,然后点击下一个屏幕旁边的按钮,选择视频。照片和视频都会作为帖子对象的一部分上传到 Firebase。看看简单的设计。

线框设计

enter image description here

我在使用照片网址和视频网址创建帖子对象时遇到了困难。我试过:

1- 选择照片并进入下一步后,我将照片上传到 Firebase 存储,并使用照片 url 和视频 url 的空字符串在数据库中创建 post 对象。

2-选择视频后,我将视频上传到 Firebase 存储,并尝试使用视频网址更新现有的帖子对象...

但是我无法更新正确的帖子对象,并且不知道如何检索 postByAutoID 以便更新正确的帖子。

数据库对象如下所示:

enter image description here

我尝试将 photoURL 转发到帖子的第二部分,但在传递变量时,URL 的上传和生成尚未完成。

感谢任何帮助!

最佳答案

使用 Web 或 JavaScript,上传到 Firebase 云存储会返回 Promise,因此 Promise.all 是单个上传的数组。

对于 swift 或 IOS,您必须将每个上传 (.putData) 推送到内存,然后迭代/循环它们。

参见Upload Files on iOS它提供了一个起点并添加您的循环/迭代。

// Data in memory
let data = Data()

// Create a reference to the file you want to upload
let riversRef = storageRef.child("images/rivers.jpg")

// Upload the file to the path "images/rivers.jpg"
let uploadTask = riversRef.putData(data, metadata: nil) { (metadata, error) in
guard let metadata = metadata else {
// Uh-oh, an error occurred!
return
}
// Metadata contains file metadata such as size, content-type.
let size = metadata.size
// You can also access to download URL after upload.
riversRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
return
}
}
}

关于swift - 通过多次上传更新 Firebase 数据库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52174511/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com