当前位置: 首页 > 知识库问答 >
问题:

从Firebase读取数据时未识别的PropertyException

云霖
2023-03-14

我正在尝试读取存储在Firebase数据库中的值。这就是数据库的样子:

URL:https://xxxx.firebaseio.com/comesion/passes/away/assenal

现在,从Android端,这就是我尝试检索数据的方式:

    Firebase mRef = new Firebase("https://xxxx.firebaseio.com/Cohesion/Passes/Away/Arsenal");

    mRef.addValueEventListener(new ValueEventListener()
    {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot)
        {
            Arsenal vals = dataSnapshot.getValue(Arsenal.class);
            Log.e("retValue",""+vals);

        }

        @Override
        public void onCancelled(FirebaseError firebaseError)
        {
            Log.e("REAL_ERROR",""+firebaseError);

        }
    });
public class Arsenal {

    private int Cross;
    private int LongBall;
    private int ShortPass;
    private int ThroughBall;

    public Arsenal()
    {

    }

    public Arsenal(int Cross,int LongBall,int ShortPass,int ThroughBall)
    {
        this.Cross = Cross;
        this.LongBall = LongBall;
        this.ShortPass = ShortPass;
        this.ThroughBall = ThroughBall;
    }
    public int getCross() {
        return Cross;
    }


    public int getLongBall() {
        return LongBall;
    }


    public int getShortPass() {
        return ShortPass;
    }


    public int getThroughBall() {
        return ThroughBall;
    }


}

共有1个答案

冯宏浚
2023-03-14

当Firebase发现一个具有getter和setter的类时,Firebase使用JavaBean命名约定来确定底层的JSON属性名称。

这意味着

public class Arsenal {
    private int Cross;

    public int getCross() {
        return Cross;
    }
}

转换为以下JSON:

cross: 19
cross: 19
public class Arsenal {
    public int Cross;
}
public class Arsenal {
    private int Cross;

    @JsonProperty("Cross")
    public int getCross() {
        return Cross;
    }
}

在Firebase3.x中,对应的注释是PropertyName:

public class Arsenal {
    private int Cross;

    @PropertyName("Cross")
    public int getCross() {
        return Cross;
    }
}
 类似资料:
  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(

  • 我有一个启用/配置了TTL和DynamoDB Streams的DynamoDB表。 我想实现一个lambda函数,该函数将从DynamoDB流中读取TTL删除的数据,并将其转发给Kinesis Firehose或S3(考虑到成本,我需要决定哪一个更好)。 是否有任何标志/属性有助于识别TTL删除记录已被某些lambda函数读取/处理?例如,我在DynamoDB流中有10条记录,一个lambda函数

  • 我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。

  • 我正在尝试读取我的Flutter应用程序中的firebase实时数据库中的数据,并将其分配给模型类,但是,我在控制台中得到了以下错误。 下面是我到目前为止所做的代码 员工类别 我不知道我做错了什么,请帮我解决这个问题

  • 主要内容:示例在本章中,我们将演示如何读取Firebase数据。 下图显示了想要读取的数据 - 可以使用方法来检索数据。 此方法将事件类型作为“值”,然后检索数据的快照。 当我们将方法添加到快照时,将获得数据的JavaScript表示形式。 示例 下面来看看一个例子。 如果运行下面的代码,浏览器的控制台将显示以下数据。 在下一章中,我们将学习可用于读取数据的其他事件类型。

  • 因此,我尝试拍摄数据库的快照,并添加带有子项的数组字符串中的项。 我的set和get java文件如下所示 但是,当我的程序到达dataQuery方法并尝试获取和设置名称和成分时,它会崩溃。有人能解释一下我做错了什么,以及是否有更好的方法来使用数据库快照来做到这一点吗? 进程:in.tvac.akshayejh.firebasesearch,PID:24798java.lang.NullPoint