当前位置: 首页 > 知识库问答 >
问题:

如何检测ValueEventListener是否在Firebase中提取数据

逑和蔼
2023-03-14
boolean isAvailable=false;
    usernameReference.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        isAvailable = true;
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                        progressBar.setVisibility(View.GONE);
                    }
                });
if(isAvailable){
       //do something here
}
else{
      //do something here 
}

这个代码段总是执行else部分,所以我想等到变量可用从数据库中获取值后再执行。

共有1个答案

上官鸿朗
2023-03-14

首先创建一个接口,如下所示:

public interface IsAvailableCallback {
    void onAvailableCallback(boolean isAvailable);
}

假设上面的代码在这个方法中,它采用接口对象来触发回调,如下所示:

public void isAvailable(IsAvailableCallback callback) {
    boolean isAvailable=false;
    usernameReference.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    isAvailable = true;
                    //this will trigger true
                    callback.onAvailableCallback(isAvailable);
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    progressBar.setVisibility(View.GONE);
                    //this will trigger false
                    callback.onAvailableCallback(isAvailable);
                }
            });                
}

像这样调用此方法:

isAvailable(new IsAvailableCallback() {
    @Override
    public void onAvailableCallback(boolean isAvailable) {
        //you will get callback here, Do your if condition here
    }
}
 类似资料:
  • 问题内容: 我正在将实时数据库与Google的Firebase结合使用,并且正在尝试检查是否存在孩子。 我的数据库结构如下 我想检查room1是否存在。我尝试了以下方法: 在访问它时,返回该房间属性的JSON,但是我如何检查room()是否从那里开始呢? 评论是否需要任何澄清 问题答案:

  • 问题内容: 我是通过Android(Java)刚接触Firebase的,并且想知道如何检查用户是否已存在以下格式的数据库中: 例如,按下按钮后,我想检查Firebase以查看用户名“ Michael”是否存在(对象michael中的第一级michael-而不是“ michael”。 谢谢 问题答案: 使用方法或onDataChange中的SingleValueEvent

  • 问题内容: 我想先测试Firebase中是否存在数据,然后再添加它。但是我的方法有问题:我尝试使用此Javascript代码列出所有数据: 但是,如果该用户不存在,则会在之前添加该用户,然后我的代码会说该用户存在。您会说这是正常的,因为仅在“ child_added”时才调用我的警报,但是我不知道该怎么做。 我也尝试使用“值”事件,但我的“ message.name”为空。 我该如何解决? 问题答

  • 我想唱出或刷新缓存在所有应用程序,如果用户被删除从Auth相应。

  • 本文向大家介绍如何检测MySQL中是否存在表?,包括了如何检测MySQL中是否存在表?的使用技巧和注意事项,需要的朋友参考一下 要检测表的存在,请使用INFORMATION_SCHEMA.TABLES的概念。以下是语法- 要了解上述语法,让我们创建一个表- 这是检测数据库中是否存在表的查询- 这将产生以下输出-

  • 我想检查一下总线号码是否已经存在于Firebase的数据库中。 这是我的示例代码。我一直在搜索过去的日子,但我不能找到正确的代码这样做。 有人能帮我处理这件事吗?提前道谢。不管if语句是否正确,我的问题还在于为什么...不起作用?我试图测试一些吐司消息,但消息不会弹出。