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

安卓端无自有后端、不使用Cloud Functions时如何获取Firebase Authentication注册用户

安卓端无额外成本拉取Firebase全量注册用户方案

Firebase 客户端 SDK 默认未开放批量拉取全部 Authentication 注册用户的接口,这是官方的安全设计,避免用户数据批量泄露。你可以通过同步用户公开数据到Firestore的方式实现需求,全程不需要Admin SDK、云函数,也不会产生额外成本,适配个人使用场景:

实现步骤

  • 新增users集合同步用户公开信息
    你在安卓端的用户注册成功回调逻辑中,新增写入操作,将选择出借人/借款人需要展示的公开字段(如用户UID、昵称、邮箱、头像地址等)写入Firestore的users集合,文档ID直接用用户的Auth UID,方便后续关联查询。
    安卓端Kotlin示例代码:
    val currentUser = FirebaseAuth.getInstance().currentUser ?: return
    val publicUserInfo = mapOf(
        "uid" to currentUser.uid,
        "displayName" to currentUser.displayName,
        "email" to currentUser.email
    )
    FirebaseFirestore.getInstance().collection("users")
        .document(currentUser.uid)
        .set(publicUserInfo)
    
    如果已经有存量注册用户,手动将存量用户的公开信息导入users集合即可,个人使用场景下用户量极少,操作成本很低。
  • 配置Firestore安全规则
    配置规则保证只有登录用户可以读取users集合的公开数据,同时只有用户本人可以修改自己的公开信息:
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /users/{userId} {
          allow read: if request.auth != null;
          allow write: if request.auth != null && request.auth.uid == userId;
        }
        // 原有其他集合的安全规则保持不变即可
      }
    }
    
  • 安卓端拉取全量用户列表
    直接查询users集合全量文档即可拿到所有注册用户的公开信息,用于出借人/借款人选择器的数据源:
    FirebaseFirestore.getInstance().collection("users")
        .get()
        .addOnSuccessListener { querySnapshot ->
            val allUserList = mutableListOf<PublicUser>()
            for (doc in querySnapshot.documents) {
                val user = doc.toObject(PublicUser::class.java)
                user?.let { allUserList.add(it) }
            }
            // 将allUserList传给选择器组件渲染
        }
    
  • 适配LoanRecord关联逻辑
    存储LoanRecord时,lender、borrower字段直接存储对应用户的UID即可,后续需要展示详情时,再通过UID去users集合查询对应数据,和你预期的外键逻辑完全一致。

成本说明

该方案完全基于Firebase免费配额即可运行,Spark免费计划的Firestore每日提供5万次读配额,个人使用完全足够,不会产生任何额外费用。


内容的提问来源于stack exchange,提问作者Al Ryan Acain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:24:02