gpt4 book ai didi

java - 从firebase数据库中获取数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:45 24 4
gpt4 key购买 nike

我想从 Firebase 内部获取数据来检查数据库中是否存在该用户,但有一个我无法解决的问题,监听器触发较晚,这是我的代码:-

  • 如果我删除 while 循环,我将无法快速获取对象
  • 如果我保持 while 循环,我会进入无限循环,我不知道为什么为什么监听器不触发

    DataSnapshot fetched ;
    public boolean user_exist(final String user) throws Exception {
    users.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
    fetched = dataSnapshot ;
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
    });
    while (fetched == null){
    Log.e("dbController","not fetched yet");
    }
    return fetched.hasChild(user);
    }

最佳答案

Firebase 必须从数据库中获取数据并将其引入您的应用中。这可能需要时间,因此应该在后台完成。当您添加 valueEventListener 时,获取是在后台完成的。您可以显示一个进度条来显示数据仍在加载,一旦数据到达,就执行其余的代码:

users.child(user).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
funUserExists();
} else {
funNoUser();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});

关于java - 从firebase数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46411932/

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