gpt4 book ai didi

java - 尝试将消息上传到 Firebase 数据库时出现错误 "found conflicting getters"

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:55 24 4
gpt4 key购买 nike

我正在使用这个库:https://github.com/stfalcon-studio/ChatKit要将聊天添加到我的应用程序,当我尝试将消息上传到 firestore 数据库时,我收到此错误:

FATAL EXCEPTION: main
Process: neoncore.com.onepiece, PID: 3907
java.lang.RuntimeException: Found conflicting getters for name getUser on class neoncore.com.onepiece.beans.chat.Message
at com.google.android.gms.internal.zzevb$zza.<init>(Unknown Source)
at com.google.android.gms.internal.zzevb.zzg(Unknown Source)
at com.google.android.gms.internal.zzevb.zza(Unknown Source)
at com.google.android.gms.internal.zzevb.zzbw(Unknown Source)
at com.google.firebase.firestore.zzk.zzcd(Unknown Source)
at com.google.firebase.firestore.CollectionReference.add(Unknown Source)
at neoncore.com.onepiece.activities.ChatDetail$1.onSubmit(ChatDetail.java:57)
at com.stfalcon.chatkit.messages.MessageInput.onSubmit(MessageInput.java:145)
at com.stfalcon.chatkit.messages.MessageInput.onClick(MessageInput.java:108)
at android.view.View.performClick(View.java:5210)
at android.view.View$PerformClick.run(View.java:21328)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5551)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

这是我更新的消息类:

public class Message implements IMessage,
MessageContentType.Image, /*this is for default image messages implementation*/
MessageContentType /*and this one is for custom content type (in this case - voice message)*/ {

private String id;
private String text;
private Date createdAt;
private User user;
private Image image;
private Voice voice;

public Message(String id, User user, String text) {
this(id, user, text, new Date());
}

public Message(String id, User user, String text, Date createdAt) {
this.id = id;
this.text = text;
this.user = user;
this.createdAt = createdAt;
}

@Override
public String getId() {
return id;
}

@Override
public String getText() {
return text;
}

@Override
public Date getCreatedAt() {
return createdAt;
}

@Override
public User getUser() {
return this.user;
}

@Override
public String getImageUrl() {
return image == null ? null : image.url;
}

public Voice getVoice() {
return voice;
}

public String getStatus() {
return "Sent";
}

public void setText(String text) {
this.text = text;
}

public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}

public void setImage(Image image) {
this.image = image;
}

public void setVoice(Voice voice) {
this.voice = voice;
}

public static class Image {

private String url;

public Image(String url) {
this.url = url;
}
}

public static class Voice {

private String url;
private int duration;

public Voice(String url, int duration) {
this.url = url;
this.duration = duration;
}

public String getUrl() {
return url;
}

public int getDuration() {
return duration;
}
}
}

还有我的用户类别:

     [public class User implements IUser {


private String id, name, avatar;

public User(String id, String name, String avatar) {
this.id = id;
this.name = name;
this.avatar = avatar;
}

public User() {
}


@Override
public String getId() {
return id;
}

@Override
public String getName() {
return name;
}

@Override
public String getAvatar() {
return avatar;
}
}][1]

这是错误发生的地方:

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_detail);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
firebaseFirestore = FirebaseFirestore.getInstance();
final Author author = new Author(currentUser.getUid(),currentUser.getDisplayName(),currentUser.getPhotoUrl().toString());
messageMessagesListAdapter = new MessagesListAdapter<>(author.getId(),null);
messagesList = findViewById(R.id.messagesList);


inputView = findViewById(R.id.input);
inputView.setInputListener(new MessageInput.InputListener() {
@Override
public boolean onSubmit(CharSequence input) {
CollectionReference reference = firebaseFirestore.collection("Messages");
final Message message = new Message(author,input.toString(), "",null,new Date());
reference.add(message).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
@Override
public void onComplete(@NonNull Task<DocumentReference> task) {

messageMessagesListAdapter.addToStart(message,true);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("MessageUPloadFailed",e.getMessage());
}
});
return true;
}
});

messagesList.setAdapter(messageMessagesListAdapter);
}

错误发生在我尝试将消息添加到调用 add 方法的 firestore 数据库时。 database image

最佳答案

您收到此错误:

java.lang.RuntimeException: Found conflicting getters for name getUser on class Message

因为在 Message 类中,您有一个 getUser() 方法,但根本没有 user 字段。相反,您有一个 author 字段,并且该字段的 getter 应该是:

@Override
public Author getAuthor() { //NOT getUser()
return author;
}

关于java - 尝试将消息上传到 Firebase 数据库时出现错误 "found conflicting getters",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48887028/

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