首页 > 解决方案 > Firebase,通过getter检索是成功的,除了一个特定的值

问题描述

这很奇怪,我有一个工作代码来检索一组数据,包括 Long、String、int,工作得很好。(例如:本例中的“player1Name”)

但是当我通过updateGameInfo()添加一个额外的项目,字符串“observerCode”时,它无缘无故无法检索,只是检索到一个空白文本来显示..

public void updateGameInfo() {

 DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
 DatabaseReference gameInfoRef = rootRef.child("gameInfo").child(UserId);.

 game.put("player1Name", tv_player1Name.getText().toString());
 game.put("observerCode", "TESTING");
 gameInfoRef.child(gameKey).updateChildren(game);
 }

onClick 检索数据:

 gameInfoRef.child(gameKey).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                TextView tv_observerCode = findViewById(R.id.tv_observerCode);

                    GameFan gameFan1 = dataSnapshot.getValue(GameFan.class);
                    String observerCode = gameFan1.getObserverCode();
                    tv_observerCode.setText(observerCode);

                }

我的 GameFan 课:

public class GameFan {

public GameFan() {
}

public String observerCode;
public String player1Name;

public String getObserverCode() {
    return observerCode;
}
public void setObserverCode(String observerCode) {
    observerCode = observerCode;
}

public String getPlayer1Name() {
    return player1Name;
}
public void setPlayer1Name(String player1Name) {
    this.player1Name = player1Name;
}

火力基地:

 -LSiDqymAufeTWgsJE5q //the gameKey
      observerCode: "TESTING"
      player1Name: "player1"

结果:单击按钮时,它将我的 TextView 从一些示例文本更改为无,与背景颜色匹配。没有错误。然后当我改变这条线

 String observerCode = gameFan1.getobserverCode();

 String observerCode = gameFan1.getPlayer1Name();

它将我的 TextView 更改为“player1”,我很困惑,这怎么可能发生!

标签: androidfirebase-realtime-database

解决方案


您的 getter 和 setter 命名不正确。应该得到getObserverCodesetObserverCode。注意大写O。


推荐阅读