如何使用标准类将自定义对象添加到Firestore?

问题描述 投票:0回答:1

在我的Firebase appp中,我有几个这样的类:

class User (name: String, address: String){

    fun doesSomething(){}

}

我想这样添加到Firestore:

val user = User("Test User", "Fakestreet 123")

db.collection("users").document("test user").set(user)

问题是,根据the documentation,我只能使用数据类。但就我而言,我的类也包含函数。当然,我只想将属性添加到我的Firestore数据库中(因此,在我的示例中,名称和地址)。

实现此目标的首选方法是什么?我是Kotlin和Android Studio的新手,很抱歉,如果我错过了明显的内容。

android firebase kotlin google-cloud-firestore
1个回答
0
投票

该文档并不建议您只能使用数据类。那只是科特林最常见的方式。

Firestore不会尝试序列化类上的任意方法。为了考虑一个属性,它必须具有与JavaBeans兼容的名称或声明。这意味着它将寻找看起来像getter和setter的方法。例如,名为getName()setName()的访问器将发信号通知Firestore接受getName()提供的值,并将其分配给名为“名称”的字段。您的函数“ doesSomething”将不会序列化。使用Kotlin,属性会自动转换为具有JavaBeans兼容名称的getter和setter。

但是,无论如何,我还是鼓励您使用数据类,并将原始数据与处理该数据的方法分开。这只是更好的软件工程。

© www.soinside.com 2019 - 2024. All rights reserved.