[英]Imageurl not getting saved to Firestore database - SwiftUI
因此,我在我的應用程序中構建了一個用戶配置文件,並保存了在 Firestore 數據庫中創建的名稱、生物、圖像、uid 和日期。 雖然其他值保存在數據庫中並在用戶配置文件中檢索,但 imageurl 被保存為空字符串,因此不會在用戶配置文件中檢索。 我在哪里錯了?
import SwiftUI
import Firebase
class RegisterViewModel : ObservableObject{
@Published var name = ""
@Published var bio = ""
@Published var image_Data = Data(count: 0)
@Published var picker = false
let ref = Firestore.firestore()
// loading view
@Published var isLoading = false
@AppStorage("current_status") var status = false
func register(){
isLoading = true
// setting user data to firestore
let uid = Auth.auth().currentUser!.uid
UploadImage(imageData: image_Data, path: "profile_Photos") { (url) in
self.ref.collection("Users").document(uid).setData([
"uid": uid,
"imageurl": url,
"username": self.name,
"bio": self.bio,
"dateCreated": Date()
]) {(err) in
if err != nil{
self.isLoading = false
return
}
self.isLoading = false
// success means setting status as true
self.status = true
}
}
}
}
import SwiftUI
import Firebase
func UploadImage(imageData: Data, path: String, completion: @escaping (String) -> ()){
let storage = Storage.storage().reference()
let uid = Auth.auth().currentUser!.uid
storage.child(path).child(uid).putData(imageData, metadata: nil) { (_, err) in
if err != nil {
completion("")
return
}
// downloading url and sending back
storage.child(path).child(uid).downloadURL { (url, err) in
if err != nil {
completion("")
return
}
completion("\(url!)")
}
}
}
Firestore 數據庫中的結果類似於:
生物:“生物”
日期創建時間:2022 年 9 月 22 日凌晨 1:32:43 UTC+5:30
圖片網址:“”
uid:“o32JbCwShtKLhtHibcui474NwFA9”
用戶名:“姓名”
Firestore 中不支持 Swift 的URL
類型。 在保存之前,您必須將URL
轉換為受支持的類型,例如String
。
"imageurl": url!.absoluteString
然后,當您從 Firestore 獲取字符串值時,您必須重建URL
。
let imageurl = URL(string: imageurl)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.