我当前的目标是发送一些有用的数据到我的Firestore数据库。问题是我一直看到上面的忽略字段。
我不需要在数据库中保留布尔值'isUserAuthenticated'和'isNewUser'。
对于字段,我不想让我添加一个@ exclude,我甚至试图在类的顶部使用@ IgnoreExtraProperties。
模型中的一个例外:
@IgnoreExtraProperties
class UserModel : Serializable {
// authentication logic
@Exclude
var isUserAuthenticated = false
这是一个演示如何发送的示例:
val profile = UserModel(
firebaseUser.uid,
profileName,
firebaseUser.email,
profileImage,
currentLanguage,
profileLanguages,
0,
100
)
val uidRef: DocumentReference = firebaseUser.let { usersRef.document(it.uid) }
uidRef.get().addOnCompleteListener { uidTask: Task<DocumentSnapshot> ->
if (uidTask.isSuccessful) {
Log.i(TAG, "createProfileInFirestore: uidTask.isSuccessful()")
try {
val document: DocumentSnapshot = uidTask.result
if (!document.exists()) {
uidRef.set(profile)
.addOnCompleteListener { profileCreationTask: Task<Void> ->
在Java中忽略字段工作,但我目前正在Kotlin中重写它。
在公共字段前面添加的@Exclude
注释在Java中工作。在Kotlin中,您必须像这样添加@get:Exclude
:
@get:Exclude
var isUserAuthenticated = false