首页 > 解决方案 > 使用用户 ID 从 Firebase 获取数据

问题描述

我创建了 Firebase 数据库,每个实例都有一个 UID,它与从 Firebase 身份验证创建的相同:

如何通过搜索 UID 读取数据?

在此处输入图像描述

我通过以下方式获得了 UID:

mAuth = FirebaseAuth.getInstance();
FirebaseUser currentUser = mAuth.getCurrentUser();
UID = currentUser.getUid();

如何传入 UID 以从中检索所有内容Rack

标签: androidjsonfirebasefirebase-realtime-database

解决方案


您需要为此使用查询。就像是:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("busUsers");
Query query = ref.orderByChild("uID").equalTo(UID);
query.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
            Log.i("DB", snapshot.getKey());
            Log.i("DB", snapshot.child("adminName").getValue(String.class));
            ...
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}

需要循环,onDataChange因为可能有多个具有相同uID价值的企业。如果不是这种情况,请考虑使用该uID值作为 下节点的键busUsers


推荐阅读