猿问

firebase 数据库读取问题

我正在尝试从 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 submitKey

D/ViewRootImpl@5b51511[Questions]: ViewPostIme pointer 0

D/ViewRootImpl@5b51511[Questions]: ViewPostIme pointer 1


如果语句转到 else 语句,它也不会进入内部


绝地无双
浏览 121回答 1
1回答

守着星空守着你

当您对 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();        }      }    }
随时随地看视频慕课网APP

相关分类

Java
我要回答