【问题标题】:Failed to insert a record in the Firebase Database未能在 Firebase 数据库中插入记录
【发布时间】:2017-04-19 14:03:22
【问题描述】:

好的,我是 Firebase 开发的新手,我正在尝试将数据插入到我已连接到我的 android studio 项目的应用程序数据库中。但是,在单击将文本添加到数据库的按钮后,我得到了这个堆栈跟踪:

E/AndroidRuntime: FATAL EXCEPTION: main
                      Process: com.xxx.xxxxx, PID: 13243
                      com.google.firebase.database.DatabaseException: Found conflicting getters for name: isChangingConfigurations
                          at com.google.android.gms.internal.zzbqi$zza.<init>(Unknown Source)
                          at com.google.android.gms.internal.zzbqi.zzi(Unknown Source)
                          at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
                          at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
                          at com.google.firebase.database.DatabaseReference.zza(Unknown Source)
                          at com.google.firebase.database.DatabaseReference.setValue(Unknown Source)
                          at com.xxx.xxxxx.MainActivity$1.onClick(MainActivity.java:85)
                          at android.view.View.performClick(View.java:4780)
                          at android.view.View$PerformClick.run(View.java:19866)
                          at android.os.Handler.handleCallback(Handler.java:739)
                          at android.os.Handler.dispatchMessage(Handler.java:95)
                          at android.os.Looper.loop(Looper.java:135)
                          at android.app.ActivityThread.main(ActivityThread.java:5254)
                          at java.lang.reflect.Method.invoke(Native Method)
                          at java.lang.reflect.Method.invoke(Method.java:372)
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

MainActivity 代码行如果在又名第 85 行突发如下:

mDatabase.child("users").child(mUserId).child("items").push().child("title").setValue(new ChatMessage(input.getText().toString(), mFirebaseAuth.getCurrentUser().getDisplayName()));

如果有人能想出一个好的和快速的解决方案来解决这个问题,我们将不胜感激。 Google Firebase 团队前来救援!

编辑

根据@Frank 的要求,这是我在 setValue() 中使用的 ChatMessage 的 java 类:

package com.xxx.xxxxx;

import android.support.v7.app.AppCompatActivity;
import com.google.firebase.database.IgnoreExtraProperties;
import java.util.Date;


/**
 * Created by sahir on 12/4/2016.
 */
@IgnoreExtraProperties
public class ChatMessage extends AppCompatActivity {

    public String messageText;
    public String messageUser;
    public long messageTime;

    public ChatMessage(){}

    public ChatMessage(String messageText, String messageUser) {
        this.messageText = messageText;
        this.messageUser = messageUser;

        // Initialize to current time
        messageTime = new Date().getTime();
    }

    public String getMessageText() { return messageText; }
    public String getMessageUser() { return messageUser; }
    public long getMessageTime() { return messageTime; }


}//close ChatMessage

【问题讨论】:

  • 类似于here 的堆栈跟踪。你检查了吗?
  • 我认为这与@AL 所说的问题相同
  • 我同意这是同样的问题,但解决方案对我不起作用。
  • 没有看到触发这个错误的代码,我们所能做的就是推测。请分享MCVE

标签: android firebase firebase-realtime-database


【解决方案1】:

我发现了问题。在使 java 类 (ChatMessage) 独立于 java 活动的行为之后,我很愚蠢地删除了以下导入。现在我可以毫无问题地将我的对象传递给 setValue!

import android.support.v7.app.AppCompatActivity;

是的,这也必须删除:

extends AppCompatActivity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多