上传文件到Firebase Storage时出现'No auth token for request'警告
我尝试将图片上传到Firebase云存储,设置了用于上传文件到存储的按钮。点击按钮后文件可正常上传,但控制台会输出一条警告。
以下是上传文件时的日志输出:
E/StorageUtil( 2806): error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token. W/NetworkRequest( 2806): no auth token for request I/zygote ( 2806): Background concurrent copying GC freed 2141(303KB) AllocSpace objects, 3(124KB) LOS objects, 49% free, 2MB/5MB, paused 340us total 141.593ms D/libc-netbsd( 2806): getaddrinfo: get result from proxy gai_error = 0 I/System.out( 2806): port:443 I/System.out( 2806): [OkHttp] sendRequest<< E/StorageUtil( 2806): error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token. W/NetworkRequest( 2806): no auth token for request I/System.out( 2806): [OkHttp] sendRequest<< I/flutter ( 2806): Image uploaded E/StorageUtil( 2806): error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token. W/NetworkRequest( 2806): no auth token for request I/System.out( 2806): [OkHttp] sendRequest>> I/System.out( 2806): [OkHttp] sendRequest<< I/flutter ( 2806): The user image url => 'uploaded image url' Application finished. Exited (sigterm)
警告触发原因
该警告由Firebase Storage SDK的默认鉴权逻辑触发:SDK发起存储操作前会优先尝试获取当前已登录用户的身份令牌用于权限校验,由于当前应用未实现Firebase用户登录逻辑,令牌获取失败抛出警告。但你的存储安全规则已经开放了未登录用户的上传权限,所以上传操作本身可以正常完成,不会影响功能使用。
解决方案
方案1:调整存储安全规则(测试场景适用)
在Firebase控制台的Storage模块中修改安全规则,明确开放公共读写权限,即可消除警告:
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if true; } } }
注意:该配置会允许所有用户访问、修改你的存储内容,仅适合本地测试使用,生产环境禁止使用该配置。
方案2:新增用户登录逻辑(生产场景适用)
在执行上传操作前先完成Firebase用户认证(支持匿名登录、账号密码登录、第三方登录等多种方式),SDK即可正常获取到身份令牌,警告会自动消除。以下是Flutter环境下匿名登录的示例代码:
// 上传操作前先触发匿名登录 await FirebaseAuth.instance.signInAnonymously(); // 再执行原有上传逻辑
方案3:直接忽略(临时测试适用)
该警告为非阻断性提示,不会影响上传功能的正常执行,如果仅为本地临时测试,可以直接忽略。
内容的提问来源于stack exchange,提问作者Anoop Janakar
相关产品推荐
相关产品推荐

