将dosumentSnapshot分配给自定义对象?

时间:2018-06-03 17:38:26

标签: swift firebase google-cloud-firestore

首先,我看到了答案: here 但是对于我来自android和angular只是让人头脑发热,必须编写这么多代码(在android和angular它需要一行的地方)加上答案不是最新的,所以想知道现在有没有更好的方法

澄清这里是我的例子:

struct User{
  let fistName:String
  let lastName:String
}

我用以下方法检索数据:

Firestoer.firestore().collection("users").document('someId').getDocument{
   (snapshot,error) in 
}

问题是如何使用一行代码将快照值分配给用户对象值 - 如同user = snapshot -ish一样。

2 个答案:

答案 0 :(得分:0)

通过阅读您的评论,很难理解您在哪里遇到问题。我将假设这是因为你不知道如何编写其他初始化程序,因为你的第一个评论:

`my object is simple "stuct" and I could not make "(dictionary: data)" -call.`

以下是您可以使用的初始化程序:

extension User {
    init?(dictionary: [String: Any]){
        guard let firstName = dictionary["firstName"] as? String else { return nil }
        guard let lastName = dictionary["lastName"] as? String else { return nil }
    }
        self.init(firstName: firstName, lastName: lastName)
}

答案 1 :(得分:-1)

我终于发现,简单的swift firestore sdk仍然缺少这个功能,但是接口就像是在工作中你可以在here

找到关于它的讨论
  

......我们的雷达上有一些这样的东西。基本上我们想要提供Android DocumentSnapshot.toObject的等价物。

,希望很快就能完成......