【问题标题】:Assign Firestore JSON object to a variable in Kotlin将 Firestore JSON 对象分配给 Kotlin 中的变量
【发布时间】:2018-02-13 20:35:13
【问题描述】:

在我的 Firestore 中,我有一个看起来像这样的“员工”节点:

我正在将该节点分配给 Kotlin 中的“用户”对象:

object User {
    val firstName: String = "";
    val lastName: String = "";
    val employeeId:String="";
    val city:String = "";
    val email:String="";
    val salary:Number=0;
    val imgUrl:String="";
    val employmentStatus:String="";
    val employmentDate: ??????
}

我的问题是“employmentDate”应该是什么类型?在 Typescript 中,我正在做的只是:

employmentDate:{day:number,month:number,year:number}

我可以在 Kotlin 中做类似的事情吗?

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    不要使用objectobject 是 kotlin 中的单例类。而是在 kotlin 中使用普通类并使用组合。

    class User{
    val firstName: String = "";
    val lastName: String = "";
    val employeeId:String="";
    val city:String = "";
    val email:String="";
    val salary:Number=0;
    val imgUrl:String="";
    val employmentStatus:String="";
    var employmentDate: EmploymentDate = EmploymentDate()
    
    class EmploymentDate{
    val day:Int=0
    val month:Int=0
    val year:Int=0
    }
    }
    

    【讨论】:

    • -ty 先生,我希望能够从我的应用程序中的任何位置调用“User.firstName”并获取已从 Firestore 分配的名字,因此我需要一个对象/单格顿 - 谢谢再次为上面的代码(y)
    • 您可以将其存储在共享首选项中或围绕它创建自定义单例类包装器。
    • 能否请您清除“围绕它的自定义单例类包装器” - 就像您所说的对象就像 kotlin 中的单例,所以这就是我刚刚所做的,我将我的用户置于单例中 - 猜我误解了这里的东西......:S
    • object MySingleton { lateinit var myUser: User } /* Somewhere after getting the data from the FireStore */ MySingleton.myUser=user 在此之后,您可以在任何地方使用单例类访问。
    • 太棒了 - 现在我明白了 - 这对 sig -ty (y) 帮助很大
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2020-11-15
    • 2021-01-18
    • 2012-07-21
    相关资源
    最近更新 更多