【问题标题】:How to check if a value exists in firebase database - android如何检查firebase数据库中是否存在值 - android
【发布时间】:2017-05-14 01:37:34
【问题描述】:

我是通过 Android(Java) 接触 firebase 的新手,想知道如何检查用户是否已存在于以下格式的数据库中:

    gdb-2fbgg{

      users{


         Michael{
              age: 20
              height: 150
              name: Michael
                }


         Bob{
              age: 20
              height: 150
              name: Bob
                }
       }
}

例如,在按下按钮时,我想检查 firebase 以查看用户名“Michael”是否存在(第一级 michael - 不是对象 michael 中的“michael”。

谢谢

【问题讨论】:

    标签: java android database firebase unique


    【解决方案1】:

    在 onDataChange 中使用 .child("Michael").exists() 方法或 .hasChild("Michael") 与 SingleValueEvent

    DatabaseReference root = FirebaseDatabase.getInstance().getReference();
    DatabaseReference users = root.child("users");
    users.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                if (snapshot.child("Michael").exists()) {
                    // run some code
                }else{
    
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
            }
        });
    

    【讨论】:

    • 非常感谢您的帮助!现在明白了:)
    【解决方案2】:

    根据您在 onCreate() 中的偏好声明具有延迟的处理程序并从此处调用方法

            Handler h = new Handler();
            h.postDelayed(new Runnable() {
                @Override
                public void run() {
                    ok();
                }
            },3000);
    

    然后创建这个方法体

    public void ok(){
        Toast.makeText(this, "Count is : "+adapter.getItemCount(), Toast.LENGTH_SHORT).show();
    }
    

    现在您将在指定延迟后获得计数

    【讨论】:

    • 我在延迟一段时间后调用了这个方法,因为如果我立即在 onCreate 中调用,那么默认值将显示为 0
    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多