You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Firebase Firestore获取user_id并替换条件中的xxx?

嘿,这事儿不难,我一步步教你怎么实现!

从Firebase获取user_id并替换查询条件里的xxx

要完成这个需求,核心就是先拿到当前用户的唯一ID,再把它套进你的Firestore查询条件里,具体操作如下:

1. 获取当前登录用户的UID(也就是你要的user_id)

在Android项目里,Firebase Auth已经帮我们封装好了获取当前用户的方法,直接用就行:

// 获取Firebase Auth实例,拿到当前登录用户
val currentUser = FirebaseAuth.getInstance().currentUser
// 非空判断,避免用户未登录的情况
currentUser?.let { loggedInUser ->
    // 提取用户的UID,这就是你要的user_id
    val userId = loggedInUser.uid
    // 接下来就可以把userId用在查询里啦
}

要是用户还没登录,currentUser会是null,所以记得先确保用户完成登录流程,或者在代码里处理好空值情况哦。

2. 把userId替换到查询条件中

看你截图里的Firestore文档有个user_id字段,那咱们就把查询条件里的xxx换成这个字段名,再把值设为刚拿到的userId,代码示例如下:

// 初始化Firestore实例
val db = FirebaseFirestore.getInstance()

// 构建查询:筛选出当前用户的订单
db.collection("orders")
    .whereEqualTo("user_id", userId) // 这里第一个参数是Firestore里的字段名,第二个是咱们拿到的用户ID
    .get()
    .addOnSuccessListener { querySnapshot ->
        // 查询成功,处理返回的订单数据
        for (doc in querySnapshot) {
            Log.d("Firestore", "${doc.id} 的订单数据:${doc.data}")
        }
    }
    .addOnFailureListener { e ->
        // 查询失败,打印错误信息
        Log.w("Firestore", "查询订单出错啦", e)
    }

这样一来,查询就只会返回当前登录用户的订单数据啦。

额外提醒

  • 如果你的user_id不是Firebase Auth自带的UID,而是自定义的用户ID,那你得先从用户集合里查询到对应的user_id,再用它来过滤订单。
  • 记得在项目里已经配置好Firebase Auth和Firestore的依赖哦,不然代码会报错~

内容的提问来源于stack exchange,提问作者Dragan Dimitrovski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:06:02