如何暂时阻止Android应用用户访问共用的Firebase数据库?
限制Android应用访问Firebase数据库的可行方案
以下是几种直接有效的方法,帮你快速阻止Android端用户访问共用的Firebase数据库,同时保留iOS端的正常访问:
1. 通过Firebase安全规则基于应用平台/标识过滤
这是最直接的方式,修改数据库安全规则,只允许iOS应用的请求通过:
Firestore规则示例(拒绝Android请求):
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // 只允许iOS应用访问 allow read, write: if request.app != null && request.app.platform == "IOS"; // 也可精准指定iOS的Bundle ID,进一步缩小范围 // allow read, write: if request.app != null && request.app.bundleId == "你的iOS应用Bundle ID"; } } }
实时数据库规则示例:
{ "rules": { ".read": "request.app != null && request.app.platform == 'IOS'", ".write": "request.app != null && request.app.platform == 'IOS'" } }
注意:需确保已为两个应用启用App Check,否则
request.app会返回null,导致所有请求被拒绝。未开启的话,先去Firebase控制台「App Check」模块完成配置。
2. 限制Firebase API密钥的使用范围
前往Google Cloud控制台找到项目对应的API密钥,修改其限制条件:
- 仅允许该密钥关联iOS应用的Bundle ID,移除所有Android应用的包名关联
- 或者直接删除API密钥中绑定的Android应用信息
Android应用使用该密钥请求Firebase服务时会被直接拦截,iOS端不受影响。
3. 暂时禁用Android应用的Firebase集成
在Firebase控制台「项目设置」→「应用」列表中,找到目标Android应用:
- 可暂时撤销其
google-services.json配置文件的有效性,或直接删除该应用(若后续需恢复,记得提前备份配置信息) - 注意:删除应用会清除该应用的所有Firebase关联配置,恢复时需重新添加,操作前请谨慎确认
内容的提问来源于stack exchange,提问作者Mr the cat
相关产品推荐
相关产品推荐

