我是新手使用Firebase数据库并且还在慢慢学习Android。无论如何,我试图将数据存储在Firebase数据库中并且成功了。 现在我正在尝试从Firebase数据库中读取数据,但遗憾的是我不能这样做。
我从Firebase数据库中查询数据但是仍然无法使其正常工作。
以下是存储在Firebase实时数据库中的数据。
以下是我的参考代码,我试图获取数据。
我已连接移动设备使用adb来调试Android应用程序。
在尝试调试时,我在onDataChange
处保留了断点,但它从未被击中。
我可以在查询值中看到一些信息但我无法获得查询的完整信息。该值不包含我的查询结果。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_request);
databaseRequests = FirebaseDatabase.getInstance().getReference("Requests");
Query query = databaseRequests.orderByChild("requestNo").equalTo(11);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Request request = dataSnapshot.getValue(Request.class);
Log.d("CREATION"," Request.no:" + request.requestNo +" Request Purpose:" + request.requestPurpose);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
让我知道出了什么问题?我试图调试很多,但我确信我缺少了一些东西。
答案 0 :(得分:1)
addListenerForSingleValueEvent()
立即执行OnDataChange
方法,并在执行该方法后,一旦它停止侦听它所附加的参考位置。
addListenerForSingleValueEvent为此位置的数据中的单个更改添加侦听器。该侦听器将使用该位置的数据值触发一次。
您需要使用addValueEventListener()
,如何继续监听附加的查询或数据库引用。
addValueEventListener为此位置的数据更改添加侦听器。每次数据更改时,都会使用不可变的数据快照调用侦听器。