Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 从集合中获取数据';简介';使用SwiftUI的云计算Firestore。无法分配类型为';[字符串:任意]';输入';用户配置文件';_Firebase_Types_Google Cloud Firestore_Swiftui_Document - Fatal编程技术网

Firebase 从集合中获取数据';简介';使用SwiftUI的云计算Firestore。无法分配类型为';[字符串:任意]';输入';用户配置文件';

Firebase 从集合中获取数据';简介';使用SwiftUI的云计算Firestore。无法分配类型为';[字符串:任意]';输入';用户配置文件';,firebase,types,google-cloud-firestore,swiftui,document,Firebase,Types,Google Cloud Firestore,Swiftui,Document,我刚开始开发,正在寻求帮助 我已经设法创建了一个存储在CloudFireStore中的配置文件集合。我现在想检索登录用户的个人资料信息,以便在整个应用程序中使用 以下是我到目前为止的情况: 导入快捷界面 进口火基 类UserViewModel:observeObject{ @已发布的var用户:UserProfile=UserProfile(uid:,firstName:,email:,性别:) private var db=Firestore.Firestore() func fetchPro

我刚开始开发,正在寻求帮助

我已经设法创建了一个存储在CloudFireStore中的配置文件集合。我现在想检索登录用户的个人资料信息,以便在整个应用程序中使用

以下是我到目前为止的情况:

导入快捷界面
进口火基
类UserViewModel:observeObject{
@已发布的var用户:UserProfile=UserProfile(uid:,firstName:,email:,性别:)
private var db=Firestore.Firestore()
func fetchProfileFirstName(){
让userId=Auth.Auth().currentUser?.uid??“
db.集合(“配置文件”).文档(用户ID)
.addSnapshotListener{documentSnapshot,出现错误
guard let document=documentSnapshot else{
打印(“获取文档时出错:\(错误!)”)
返回
}
guard let data=document.data()else{
打印(“文档数据为空”)
返回
}
打印(“当前数据:\(数据)”)
self.user=数据
}
}
}
我收到错误:
“无法将类型“[String:Any]”的值分配给类型“UserProfile”


提前感谢。

您的用户使用UserProfile结构,但是当您将该文档数据分配给该用户变量时,文档数据不是以UserProfile的形式出现,而是以[String:Any]的形式出现

您只需将[String:Any]转换为UserProfile:

替换

self.user = data


用户使用UserProfile结构,但当您将该文档数据分配给该用户变量时,文档数据不是以UserProfile的形式出现,而是以[String:Any]的形式出现

您只需将[String:Any]转换为UserProfile:

替换

self.user = data


Firebase支持可编码API,这使您能够执行从Firebase文档到Swift结构的类型安全映射

以下是您需要执行的操作:

  • FirebaseFirestoreSwift
    添加到您的
    Podfile
  • 导入
    FirebaseFirestoreSwift
  • 确保您的
    UserProfile
    struct实现
    Codable
  • 阅读文档时,可以调用
    返回try?queryDocumentSnapshot.data(as:UserProfile.self)
  • 编写文档时,请调用
    try db.collection(“profiles”).addDocument(from:userProfile)

  • 我已经在和中详细介绍了这一点。

    Firebase支持可编码API,它使您能够执行从Firebase文档到Swift结构的类型安全映射

    以下是您需要执行的操作:

  • FirebaseFirestoreSwift
    添加到您的
    Podfile
  • 导入
    FirebaseFirestoreSwift
  • 确保您的
    UserProfile
    struct实现
    Codable
  • 阅读文档时,可以调用
    返回try?queryDocumentSnapshot.data(as:UserProfile.self)
  • 编写文档时,请调用
    try db.collection(“profiles”).addDocument(from:userProfile)
  • 我已经在和中更详细地撰写和讨论了这一点