我不明白為什么要立即從 Firebase RealtimeDatabase 讀取數據如此困難。我認為除了使用監聽器之外別無他法。在我的代碼中,我想從對象用戶那里讀取提交的“tipo”并在屏幕上打印。但它不加載數據 private User user;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); mDatabaseAPI = FirebaseRealTimeDatabaseAPI.getInstance(); setFields(); Toast.makeText(this,user.getTipo(),Toast.LENGHT_LONG).show();}private void setFields() { Authentication auth = new Authentication(); user = new User(); user = auth.getCurrentUser(); reference = mDatabaseAPI.getUserReferenceByUid(user.getUid()).child(user.TIPO); reference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { user.setTipo( dataSnapshot.getValue(Integer.class)); } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } });}
1 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
這是因為你在 firebase 完成加載數據之前調用 Toast 來顯示你的消息,這是一個異步調用,你必須做這樣的事情
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
user.setTipo( dataSnapshot.getValue(Integer.class));
Toast.makeText(this,user.getTipo(),Toast.LENGHT_LONG).show();
}
添加回答
舉報
0/150
提交
取消