ios - swift iOS : ImageUrl in Firebase database

标签 ios firebase swift3 firebase-realtime-database firebase-storage

我当前在存储数据库中保存用户图像的代码是:

            if let uploadData = UIImagePNGRepresentation(self.profileImage.image!)
            {


                storage.put(uploadData, metadata: nil, completion: { (metadata, error) in

                    if error != nil {
                        print(error!)
                        return
                    }
                    print(metadata!)
                })
            }

所以我的问题是如何将图像 url 返回到我的 firebase 数据库?我有存储在 user.uid 中的用户信息,如下所示:
            let ref = FIRDatabase.database().reference(fromURL: "https://databaseURL.firebaseio.com/")

            let userReference = ref.child("Users").child(uid)

            let values: [String : Any] = ["Full name": name, "Email": email, "Username": username]


            userReference.updateChildValues(values, withCompletionBlock: { (err, ref) in

                if err != nil {

                    return
                }

                let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

                let nextViewController = storyBoard.instantiateViewController(withIdentifier: "Homepage") as! homepageViewController

                self.present(nextViewController, animated:true, completion:nil)

                //stops loading
                self.loadingIndicator.stopAnimating()
            })

那么如何将图像 URL 存储到我为每个用户拥有的这个 JSON 中呢?

规则:
{

"rules":
 {

".read": "auth != null",


".write": "auth != null"
}

}

最佳答案

  • 首先在你的 podfile 中添加 FirebaseUI 和 SDWebImage 并安装。
  • 创建存储引用(参见 Firebase 文档):https://Firebase.google.com/docs/storage/ios/download-files
  • 现在您可以直接从 Firebase 存储 gs URL 加载图像,无需存储任何 HTTP URL Firebase 将在内部为您完成所有工作。

  • 您可以在 Firebase 数据库中保存特定图像的引用名称以识别该特定图像。

    Firebase 文档示例:
     // Reference to an image file in Firebase Storage
     let reference = storageRef.child("images/stars.jpg")
    
    // UIImageView in your ViewController
    let imageView: UIImageView = self.imageView
    
    // Placeholder image
    let placeholderImage = UIImage(named: "placeholder.jpg")
    
    // Load the image using SDWebImage
    imageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
    

    关于ios - swift iOS : ImageUrl in Firebase database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42532696/

    相关文章:

    ios - 如何以编程方式创建标签栏并在标签之间切换?

    firebase - documentSnapshot.data() 不传递给构建器 : Flutter

    ios - UILabel 手势响应

    iphone - iOS 打印 UI - 限制份数

    ios - 下载的 iOS 分发证书不在 'My Certificates' 下

    swift - Swift 中的泛型约束和初始化器继承

    ios - 允许登录类在全局拥有一个共享实例

    android - 具有多个 View 的 firebase 回收器适配器

    ios - Firebase 错误代码 9999 "blocked"

    ios - 运行函数之间的 Swift 时间