【发布时间】:2017-07-20 05:57:30
【问题描述】:
我正在尝试将我的描述、位置和图片加载到同一个 AutoId 到 firebase。我必须先存储 Pic,然后获取 URL,然后将 URL 添加到 Pic 值。我尝试先上传描述和位置,将图片留空,然后返回并添加图片 URL,但我的 autoID 键值似乎不起作用。
它不断将 Pic URL 放入不同的 childAutoId。如何让它们存储到同一个子节点中?
创建 AutoID 节点的初始函数
@IBAction func postToWall(_ sender: Any) {
let location : String = locationTextField.text!
let description : String = descriptionTextField.text!
self.ref.child("Posts").childByAutoId().setValue(["Location" : location, "Description" : description, "Pic" : ""])
let newRef = ref.child("Posts").childByAutoId()
print(newRef)
key = newRef.key
print(key)
savePicPost()
}
将图片保存到存储后,尝试返回刚刚创建的 ID 并保存图片 URL
func savePicPost(){
//Store the image in storage
let imageName = NSUUID().uuidString
let storedImage = storageRef.child("PostPics/").child(imageName)
if let uploadData = UIImagePNGRepresentation(self.postImage.image!) {
storedImage.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error!)
return
}
if let picPostURL = metadata?.downloadURL()?.absoluteString {
self.ref.child("Posts").child(self.key).updateChildValues(["Pic" : picPostURL], withCompletionBlock: { (error, ref) in
if error != nil{
print(error!)
return
}
})
}
})
}
}
这是保存到不同 ID 的方式 Firebase Screenshot
我很近,我能感觉到。尽管我认为某些东西必须符合我的关键价值。任何帮助将不胜感激。
谢谢
【问题讨论】: