ios - 如何根据用户id存储上传的图片

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

func uploadImage(){

    let storage = Storage.storage()
    let storageRef = storage.reference()
    let uploadData = self.imageView.image!.jpegData(compressionQuality: 0.75)
    let imagesRef = storageRef.child("images/myImage.jpg") //not sure how is it done
    let uploadTask = imagesRef.putData(uploadData!, metadata: nil) { (metadata, error) in
        guard let metadata = metadata else {
            return
        }

        let size = metadata.size

        imagesRef.downloadURL { (url, error) in
            guard let downloadURL = url else {
                return
            }
        }
    }
}


func retrieveData(){

    let userID = Auth.auth().currentUser?.uid
    ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in

        let userData = snapshot.value as? NSDictionary
        print("Welcome back,", userData?["username"])

    }) { (error) in
        print(error.localizedDescription)
    }
}

嗨,我正在寻找一种让用户根据用户 ID 将图像上传到 Firebase 的方法。谁能建议如何实现这一目标?提前致谢。

最佳答案

你可以这样做:

func sendMessageWithProperties(properties: [String: Any]) {
    let ref = Database.database().reference().child("messages")
    let childRef = ref.childByAutoId()

    let toId = self.user?.id
    let fromId = Auth.auth().currentUser?.uid
    let timestamp: Int = Int(NSDate().timeIntervalSince1970)
    var values: [String: Any] = ["toId": toId!,
                                 "fromId": fromId!,
                                 "timestamp": timestamp]

    // To append other properties into values
    properties.forEach({values[$0] = $1})

    childRef.updateChildValues(values) { (error, ref) in
        if error != nil {
            print(error!)
            return
        }

        let userMessageRef = Database.database().reference().child("user-messages").child(fromId!).child(toId!)
        let messageId = childRef.key
        userMessageRef.updateChildValues([messageId: 1])

        let receiverMessageRef = Database.database().reference().child("user-messages").child(toId!).child(fromId!)
        receiverMessageRef.updateChildValues([messageId: 1])
    }
}

关于ios - 如何根据用户id存储上传的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53646481/

相关文章:

ios - 来自 Apple : photos, 服务器等的权限

ios - 将 UIWindow 声明为 let 而不是可选的 var 可以很好地编译。有什么陷阱吗?

环球银行金融电信协会2 : multiline MKPointAnnotation

api - Firebase 通过 REST API PHP CURL 获取数据

iOS:蓝牙 LE 外设在回到范围内后不再更新

iphone - 以编程方式在选项卡栏项目之间导航

ios - 生产应用程序中的 Swift 断言行为

ios - swift中的DES加解密算法

java - Firebase 数据库从子 android 访问节点

javascript - Firebase uid 返回电子邮件而不是 uid