gpt4 book ai didi

java - 在没有监听器的情况下读取 RealtimeDatabase

转载 作者:行者123 更新时间:2023-12-02 03:29:40 27 4
gpt4 key购买 nike

我不明白瞬间从 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) {

}
});

}

最佳答案

这是因为您在 firebase 完成加载数据之前调用 Toast 来显示消息,这是一个异步调用,您必须执行类似的操作

@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
user.setTipo( dataSnapshot.getValue(Integer.class));
Toast.makeText(this,user.getTipo(),Toast.LENGHT_LONG).show();
}

关于java - 在没有监听器的情况下读取 RealtimeDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56892864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com