未使用Firebase Auth时Firebase Storage上传文件出现警告问题咨询
解决Firebase Storage未集成Auth时的token获取警告
嘿,我之前也碰到过一模一样的问题!这个警告看着闹心,但其实完全不影响上传功能,先给你拆解下原因和解决办法:
为什么会出现这个警告?
Firebase Storage SDK内部默认会尝试获取Firebase Auth的用户令牌,用来和Firebase存储服务做权限校验。但你用的是自有后端做用户认证,没有集成Firebase Auth,所以SDK拿不到合法令牌,就会抛出这个ExecutionException警告——不过因为你的上传逻辑已经通过自有后端搞定了权限(比如存储规则配置允许无Auth上传,或者用了后端签名的上传方式),所以上传本身不受影响。
两种解决办法,选适合你的就行
方法一:完全禁用Firebase Auth的自动初始化
如果你确定整个项目都用不到Firebase Auth,直接在AndroidManifest.xml的<application>标签里添加这段配置,禁止Auth自动初始化:
<meta-data android:name="firebase.auth.automatic_initialization_enabled" android:value="false" />
这样SDK就不会再尝试获取Auth token,警告自然就消失了。
方法二:给Storage设置空的Token提供者
如果以后可能会用到Firebase Auth,不想彻底禁用它,那可以在初始化Firebase Storage的时候,自定义一个Token获取器,直接返回null:
FirebaseStorage storage = FirebaseStorage.getInstance(); storage.setTokenProvider(new FirebaseStorage.TokenProvider() { @Override public Task<String> getToken() { // 返回空的token,避免SDK抛出异常 return Tasks.forResult(null); } });
我当时就是用的这个方法,改完之后警告立马就没了,亲测有效~
额外提醒:注意存储规则的安全性
虽然这个警告不影响功能,但一定要确保你的Firebase Storage规则配置是安全的——别为了省事直接设置成allow write: if true;(完全公开写入),最好结合你的自有后端认证逻辑,比如用后端生成临时的签名上传URL,或者在存储规则里验证自定义的请求参数/头信息,防止恶意上传。
内容的提问来源于stack exchange,提问作者BodaoZ
相关产品推荐
相关产品推荐

