繁体   English   中英

Android Studio如何获取Firebase数据库中记录的名称用户?

[英]Android Studio how to get the name's user logged from the Firebase database?

我有这段代码,我如何只获取记录的名称值?我只需要记录名称的用户,thx!

 DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference usuariosRef = rootRef.child("Usuarios");
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usuariosRef.addListenerForSingleValueEvent(eventListener);

这将获取所有名称,而我只想让该名称的用户登录。

它正在检索所有名称,因为您正在遍历所有用户。 要仅获取当前用户的名称,只需使用用户的uid。 要获取当前用户的uid,请执行以下操作:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

然后,您可以使用此uid仅获取当前用户。

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usuariosRef = rootRef.child("Usuarios");
DatabaseReference current_userRef = usuariosRef.child(uid);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
public void onDataChange(DataSnapshot dataSnapshot) {

        String name = datasnapshot.child("name").getValue(String.class);
        Log.d("TAG", name);

}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
current_UserRef.addListenerForSingleValueEvent(eventListener);

希望这可以帮助!

要显示数据库中的所有用户,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usuariosRef = rootRef.child("Usuarios");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usuariosRef.addListenerForSingleValueEvent(eventListener);

输出将是您已登录用户的所有名称:

Eric
Julian Ramos
//and so on

要仅获取单个用户的详细信息,请使用以下代码:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Usuarios").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String name = dataSnapshotds.child("name").getValue(String.class);
        Log.d("TAG", name);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(eventListener);

因此,您现在可以显示数据库中的所有用户,或仅显示已登录的用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM