gpt4 book ai didi

android - Firestore : Found conflicting getters for name isText

转载 作者:行者123 更新时间:2023-12-02 13:14:17 30 4
gpt4 key购买 nike

我试图查看类似的问题,但它们对我没有用。

我有一个类:

data class TextMessage(val text: String,
override val time: Date,
override val senderId: String,
override val isText: Boolean = true)
: Message{
constructor() : this("", Date(0), "") }

然后我尝试将它的一个实例存储在 Firestore 中:
fun sendTextMessage(message: TextMessage, channelId: String) {
chatChannelsCollectionRef.document(channelId)
.collection("messages")
.add(message)
}

出于某种原因,每当我调用 sendTextMessage我得到这个异常(exception):
java.lang.RuntimeException: Found conflicting getters for name isText on class com.resocoder.firemessageprep.model.TextMessage
at com.google.android.gms.internal.zzevb$zza.<init>(Unknown Source:191)
at com.google.android.gms.internal.zzevb.zzg(Unknown Source:12)
at com.google.android.gms.internal.zzevb.zza(Unknown Source:285)
at com.google.android.gms.internal.zzevb.zzbw(Unknown Source:2)
at com.google.firebase.firestore.zzk.zzcd(Unknown Source:36)
at com.google.firebase.firestore.CollectionReference.add(Unknown Source:5)
at com.resocoder.firemessageprep.util.FirestoreUtil.sendTextMessage(FirestoreUtil.kt:138)
at com.resocoder.firemessageprep.ChatActivity$onCreate$1$2.onClick(ChatActivity.kt:52)
at android.view.View.performClick(View.java:6256)
at android.view.View$PerformClick.run(View.java:24701)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)

at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

这没有意义。我知道 TextMessage 实现了一个具有 isText 属性的接口(interface),但这不应该是原因......对吗?

感谢您阅读到这里!

最佳答案

您的代码中的问题是您使用了一个名为 isText 的字段。 .在 Cloud Firestore 中,对应的 getter 是 getText()而不是 getIsText()正如预期的那样。

如果您尝试更改其中的字段名称,例如 izText而不是 isText并拥有相应的 setter/getter ,如 getIzText() ,您的代码将完美运行。 Firestore 删除了 is来自 getter 的前缀,这就是你有冲突的原因。更多信息,你也可以看看这个 video .

如果您决定更改该字段名称,请不要忘记删除旧数据并添加新数据。

关于android - Firestore : Found conflicting getters for name isText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49308719/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com