Android 如何在firebase中读取数据列表?
Android 如何在firebase中读取数据列表?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我的代码没有从数据库中读取任何内容。事实上,该代码没有进入onDataChange方法。该代码是在登录活动中编写的。我使用了使用共享首选项的自动登录。因为有几种方法可以签名,所以我使用更新ui方法进入所需的活动。您能告诉我们数据库规则吗?在firebase控制台中,以公共模式打开“规则”选项卡。您的意思是说规则根目录上的read设置为true?把这行代码放到Log.e(“databaseError”,databaseError.getMessage())insideonCancelled()方法
我的代码没有从数据库中读取任何内容。事实上,该代码没有进入onDataChange方法。该代码是在登录活动中编写的。我使用了使用共享首选项的自动登录。因为有几种方法可以签名,所以我使用更新ui方法进入所需的活动。您能告诉我们数据库规则吗?在firebase控制台中,以公共模式打开“规则”选项卡。您的意思是说规则根目录上的
read
设置为true
?把这行代码放到Log.e(“databaseError”,databaseError.getMessage())insideonCancelled()
方法,并让我知道在logcat中写入的消息。
private void updateUI(boolean state,String uid){
if(state) {
Toast.makeText(this, "SUCCESSFULL", Toast.LENGTH_SHORT).show();
if(uid != null) {
Log.d(tag,"uid is"+uid);
database= FirebaseDatabase.getInstance();
action_taken_booking = database.getReference().child("Bae").child("Booking list").child(uid).child("Action taken");
action_taken_blocked = database.getReference().child("Bae/Blocked list/" + uid + "/Action taken");
times_blocked = database.getReference().child("Bae/Blocked list/" + uid + "/Times blocked");
Log.d(tag,action_taken_booking.getParent().toString());
action_taken_booking.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
booking_action_taken = dataSnapshot.getValue(boolean.class);
Log.d(tag,"booking_action_taken"+booking_action_taken);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
action_taken_blocked.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
blcoked_action = (Long) dataSnapshot.getValue();
Log.d(tag,"Blocked action"+blcoked_action);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
times_blocked.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
blocked_times = (Long) dataSnapshot.getValue();
Log.d(tag,"TimesBlocked"+blocked_times);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log.d(tag,"Upddate UI"+blcoked_action+" "+ blocked_times);
blocked_action_taken = (blocked_times - blcoked_action) == 0;
if (booking_action_taken) {
Intent nextActivity = new Intent(SigninActivity.this, HotelActivity.class);
nextActivity.putExtra("uid", uid);
startActivity(nextActivity);
}
}
}
}