Firebase控制台「移除此应用」除停止分析数据收集外的实际作用是什么
从Firebase项目移除iOS/Android应用的实际作用
- 停止该应用专属的端侧统计类服务数据接收:Analytics、Crashlytics、性能监控等仅面向特定应用客户端的统计服务会彻底停止接收该应用上报的所有数据,官方文档提及的「停止数据收集」仅指代这部分效果
- 失效对应应用的官方配置文件:你此前下载的
GoogleService-Info.plist(iOS端)、google-services.json(Android端)会变为无效配置,后续使用旧配置文件打包的新版本应用将无法完成Firebase初始化 - 移除该应用在Firebase控制台的所有操作入口:你将无法在项目内查看该应用的专属配置、统计数据、推送记录,也无法再针对该应用做定向的服务参数调整
- 核心注意:移除应用操作本身不会拦截已安装的旧版本客户端对Auth、Firestore、云存储等核心数据服务的访问请求,这也是你删除OAuth客户端后依然不影响用户登录注册的原因:现有客户端已经获取的未过期访问令牌、身份凭证依然可以正常调用服务,Firebase默认的安全规则不会校验应用是否仍存在于项目中。
彻底关停旧应用的推荐操作
如果你要完全停止该应用的所有服务访问,按以下步骤操作即可避免不可逆的误操作:
- 先通过安全规则拦截访问请求:你可以在Firestore、云存储的安全规则中添加条件,拦截该应用的所有读写请求,参考规则片段:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // 仅放行非旧应用的访问请求,xxx替换为你旧应用的Firebase App ID allow read, write: if request.app == null || request.app.id != "xxx"; } } }
- 限制该应用的身份验证权限:在Firebase Auth控制台的「登录方式」页面,禁用该应用独用的登录提供方配置;如果是全项目共用的登录方式,可通过Cloud Functions编写拦截逻辑,拒绝旧应用用户的新令牌签发请求
- 清理所有关联凭证:在Google Cloud控制台「API和服务」-「凭据」页面,删除所有和该应用包名、Bundle ID绑定的API密钥、OAuth客户端ID,切断未授权调用的入口
- 确认所有拦截规则生效、旧应用已无法正常使用后,再执行移除Firebase应用的操作即可
内容的提问来源于stack exchange,提问作者Gary Hunter
相关产品推荐
相关产品推荐

