我正在尝试将我的用户图像 url 从 firebase 存储添加到 firestore,但我的 firestore 没有更新新的用户数据,我收到了这个错误
来自上传任务 错误域=FIRStorageErrorDomain 代码=-13010“对象 NewPic 不存在。” UserInfo={object=NewPic, ResponseBody={ “错误”: { “代码”:404, “消息”:“未找到。”
我可以将我的图像上传并查看到 firebase 存储,但 firestore 中没有数据。为什么我会收到此错误以及如何修复此代码以将我的用户图像 url 上传到 firestore
VStack {
PhotosPicker("Select avatar", selection: $avatarItem, matching: .images)
//....
if let img = avatarImage {
Image(uiImage: img)
.resizable()
.scaledToFit()
.frame(width: 300, height: 300)
}
}
.onChange(of: avatarItem) { _ in
Task {
if let data = try? await avatarItem?.loadTransferable(type: Data.self) {
if let uiImage = UIImage(data: data) {
avatarImage = uiImage
}
func AddFirebase() {
var dict : Dictionary < String, Any> = [:]
let imageName = "NewPic"
let storageRef = Storage.storage().reference()
let imageReference = storageRef.child(imageName)
let imageData: Data? = avatarImage?.jpegData(compressionQuality: 0.8)
guard imageData != nil else {
let er = "THIS: Error while converting to data"
return print(er)
}
let path = "images/\(UUID().uuidString).jpg"
let fileRef = storageRef.child(path)
let uploadTask = fileRef.putData(imageData!, metadata: nil) {metaData, error in
print("THIS: from uploadTAsk")
if error == nil && metaData != nil {
imageReference.downloadURL { (url, error) in
if let err = error {
print(err); return
}
guard let validUrl = url else {
print("url was not valid")
return
}
let urlString = validUrl.absoluteString
dict["ProfileImageUrl"] = urlString
let db = Firestore.firestore()
db.collection("user").document("username").setData(["username" : name, "bio": profileText, "profileImage" : imageName ])
return
}