为了账号安全,请及时绑定邮箱和手机立即绑定

firebase 数据库读取问题

firebase 数据库读取问题

绝地无双 2022-11-02 10:37:07
我正在尝试从 firebase 数据库的最后一个节点获取价值我见过一些解决方案,但没有一个对我有用。代码如下:            setData = FirebaseDatabase.getInstance().getReference().child("Questions");            Query lastQuery = setData.orderByKey().limitToLast(1);            lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {                @Override                public void onDataChange(DataSnapshot dataSnapshot) {                    if (dataSnapshot.hasChild("JSON_OBJ")) {                        SubmitKey item = dataSnapshot.getValue(SubmitKey.class);                        String key2 = item.getJSON_OBJ();                    } else {                        Snackbar.make(findViewById(R.id.QuestionLayout), "JSON_ObJ not found", Snackbar.LENGTH_LONG).show();                    }                }                @Override                public void onCancelled(DatabaseError databaseError) {                }            });我的构造函数类public class SubmitKey {    private String JSON_OBJ;    public SubmitKey() {    }    public SubmitKey(String JSON_OBJ) {        this.JSON_OBJ = JSON_OBJ;    }    public String getJSON_OBJ() {        return JSON_OBJ;    }}而不是获取值,而是转到 else 语句并显示“未找到 JSON_OBJ”。任何帮助,将不胜感激。编辑:我对代码进行了一些更改,现在它正在显示no setter/field found for 0-101 found on class submitKeyD/ViewRootImpl@5b51511[Questions]: ViewPostIme pointer 0D/ViewRootImpl@5b51511[Questions]: ViewPostIme pointer 1如果语句转到 else 语句,它也不会进入内部
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。


您onDataChange需要通过迭代来处理此列表snapshot.getChildren():


lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot snapshot) {

      for (DataSnapshot dataSnapshot: snapshot.getChildren()) {

        if (dataSnapshot.hasChild("JSON_OBJ")) {

            SubmitKey item = dataSnapshot.getValue(SubmitKey.class);

            String key2 = item.getJSON_OBJ();


        } else {

            Snackbar.make(findViewById(R.id.QuestionLayout), "JSON_ObJ not found", Snackbar.LENGTH_LONG).show();

        }

      }

    }


查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号