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

Flutter新手登录不同账号可查看其他用户信息,求Firebase相关解决方案

问题根因与解决方案

你遇到的不同账号可查看其他用户信息的越权访问问题,核心原因基本为Firebase安全规则配置错误或前端查询逻辑不合理,可按照以下步骤排查修正:

  • 确认数据库存储结构:所有用户私有数据必须存储在以自身UID为唯一标识的独立路径下,例如Firestore建议采用users/{userUid}/私有数据的层级结构,Realtime Database建议采用"users": { "$uid": { 私有数据 } }的结构。
  • 修正安全规则配置,仅允许用户访问自身UID对应路径下的数据:
    若使用Firestore,参考规则如下:
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /users/{userId}/{document=**} {
          allow read, write: if request.auth != null && request.auth.uid == userId;
        }
        // 公共数据路径可单独配置公开访问权限
      }
    }
    
    若使用Realtime Database,参考规则如下:
    {
      "rules": {
        "users": {
          "$uid": {
            ".read": "$uid === auth.uid",
            ".write": "$uid === auth.uid"
          }
        }
      }
    }
    
  • 排查Flutter侧查询代码:禁止直接查询全量用户集合/节点,查询私有数据时必须限定当前登录用户的UID路径,例如正确写法为FirebaseFirestore.instance.collection('users').doc(FirebaseAuth.instance.currentUser!.uid),不要直接写collection('users')查询全量数据。
  • 规则配置完成后,使用Firebase控制台自带的规则测试工具,模拟不同UID的登录请求验证权限,确认跨UID访问已被拦截后再正式使用。

内容的提问来源于stack exchange,提问作者Rekkles Senpai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:27:03