存在于火力地堡数据库中的所有节点检查特定值

问题描述 投票:0回答:1

enter image description here

我有这样的结构法在我FirebaseDatabase。我想,如果key检查与9028571487存在任何我的数据库中节点的值。如果存在,那么我应该能够获得关键mess的值,其中该值9028571487存在特定的节点。我使用此代码:

public void Check(){
    final String phone=username.getText().toString();
    ref = database.getReference().child("Users");
    Query query=ref.orderByChild("phone").equalTo(phone);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot data:dataSnapshot.getChildren()){
                if(data.child(name).exists()){
                    Log.i("Present","Present");
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });  

如何解决这个问题?

java android firebase firebase-realtime-database
1个回答
1
投票

您的代码看起来不错,只是你根据phone财产订购您的用户和被传递到equalTo()方法名称的事实。为了解决这个问题,传递给equalTo()方法对应的手机,而不是名字。

Query query=ref.orderByChild("phone").equalTo(phone);

编辑:

如果您onDataChange()方法不甚至称,你可能没有足够的权限。检查这个使用下面的代码行:

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
    Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
© www.soinside.com 2019 - 2024. All rights reserved.