使用用户 ID 从 Firebase 获取数据

Posted

技术标签:

【中文标题】使用用户 ID 从 Firebase 获取数据【英文标题】:Getting data from Firebase using User ID 【发布时间】:2021-03-12 22:36:30 【问题描述】:

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

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

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

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

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

【问题讨论】:

请仅使用android-studio 标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android 标签。 【参考方案1】:

您需要为此使用查询。比如:

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 下节点的键。

【讨论】:

以上是关于使用用户 ID 从 Firebase 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 从 Firebase 获取用户数据

从 Cloud Functions for Firebase 中的数据库触发器获取用户 ID?

如何在 Flutter 中从 Firebase Auth 获取用户 ID?

如何从 Firebase 身份验证中获取用户 ID

从 Firebase 中的特定 ID 列表中检索数据,关注用户并仅获取他们的帖子

从电子邮件 Firebase 获取用户 ID(不是当前用户)