SwiftUI - 将存储中图像文件的路径移动到 Firebase 上的实时数据库 [重复]

Posted

技术标签:

【中文标题】SwiftUI - 将存储中图像文件的路径移动到 Firebase 上的实时数据库 [重复]【英文标题】:SwiftUI - Move path of image file in Storage to Realtime database on Firebase [duplicate] 【发布时间】:2021-11-28 21:26:53 【问题描述】:

我已成功将 imgae 文件添加到 Storage,但我不知道如何将 Storage 中的路径文件图像移动到实时数据库,以便可以在 UI 上显示。

在我的实时数据库中有一个字段包含图像的路径

我想将存储中的路径 p4.jpg 移动到实时数据库中的图像字段

func 更新图片到存储

func uploadImageToStorage(image: UIImage) 
    if let imageData = image.jpegData(compressionQuality: 1) 
        let storage = Storage.storage()
      storage.reference().child("").putData(imageData, metadata: nil) ( _, error) in
            if let error = error 
                print("an error has occured - \(error.localizedDescription)")
             else 
                print("image uploaded successfully")
            
        
     else 
        print("Coldn't unwrap/case imgae to data")
    

let imageURL = UIImage(named:"")
Button(action: 
        profileViewModel.uploadImageToFirebse(image: imgaeURL )
) 
    Text("Upload Image")

【问题讨论】:

该文档包含在实时数据库中存储值的说明。您是否尝试过那里列出的策略? firebase.google.com/docs/database/ios/read-and-write 我看了,但我认为这与我的问题无关 您已将标签和标题改回包含 SwiftUI。 SwiftUI 根本与这个问题无关——SwiftUI 是一个在屏幕上显示 UI 元素的框架。您没有包含任何 SwiftUI 代码。这是一个“Swift”问题。 您已阅读有关向实时数据库添加信息的文档,但您认为这与您的问题无关?您想将路径存储在实时数据库中不是您的问题吗?在那种情况下,我一定是误解了这个问题。除了存储路径之外,您能否详细说明您正在尝试做什么? 我正在使用 swiftUI,而不是 swift。我已经更新了上面的代码。请不要编辑我的问题 【参考方案1】:

在您的情况下,您需要两个功能:将图像上传到存储,然后将 url 上传到数据库。

func uploadImageToStorage(image: UIImage) 
    if let imageData = image.jpegData(compressionQuality: 1) 
        let storage = Storage.storage()
        let photoRef = storage.reference().child("avatar/filename.jpg")
        photoRef.putData(imageData, metadata: nil) ( _, error) in
            if let error = error 
                print("an error has occured - \(error.localizedDescription)")
             else 
                photoRef.downloadURL  url, err in
                    if let url = url 
                        // call function to add this url to database
                     else 
                        // you might want to delete the image from storage
                        print("could not get download url")
                    
                
                print("image uploaded successfully")
            
        
     else 
        print("Coldn't unwrap/case imgae to data")
    

【讨论】:

以上是关于SwiftUI - 将存储中图像文件的路径移动到 Firebase 上的实时数据库 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中图像按钮的可点击区域

如何获取 Cakephp 中图像的完整 URL?

数据库中图像的相对路径取决于解决方案中的文件夹

如何将字典值作为 django 中图像的路径传递?

Symfony2 树枝模板中图像的路径

xcode中图像数组的视频