SwiftUI macOS应用无法向Firestore添加对象问题求助
首先要明确:你代码里调用的是Firebase Realtime Database的API(Database.database()),但描述里提到的是Firestore——这是Firebase的两个独立数据库服务,错误提示也完全指向Realtime Database的配置问题,先理清这一点再排查:
核心问题排查步骤
1. 确认是否误用了数据库服务
- 如果你的目标是使用Firestore,当前代码完全错误,应改用Firestore的API,正确代码示例:
import FirebaseFirestore let db = Firestore.firestore() db.collection("test").addDocument(data: ["test": 123]) { error in if let error = error { print("添加数据失败:\(error)") } else { print("数据添加成功") } }
- 如果确实要使用Realtime Database,按以下步骤检查配置:
2. 检查Realtime Database实例状态
登录Firebase控制台,确认你已创建Realtime Database实例(不是Firestore)——若未创建,需先完成实例创建并选择对应地区。
3. 核对Realtime Database URL配置
打开GoogleService-Info.plist(你提到的google.plist),确认FIRDatabaseURL字段的值和控制台里Realtime Database的URL完全一致,格式通常为https://[项目ID]-default-rtdb.[地区].firebasedatabase.app/,注意大小写、结尾斜杠和地区后缀。
4. 调整Realtime Database安全规则
默认的Realtime Database安全规则禁止所有读写操作,会导致服务器拒绝连接。临时修改规则用于测试:
在Firebase控制台的Realtime Database规则页面,将规则改为:
{ "rules": { ".read": true, ".write": true } }
注意:上线前必须修改为符合业务逻辑的安全规则,避免数据泄露。
5. 确认依赖库是否正确引入
如果使用CocoaPods,确保Podfile中包含pod 'Firebase/Database';如果用Swift Package Manager,确认已添加Firebase Database的依赖(不是只添加了Firestore)。
6. 验证初始化流程
确保FirebaseApp.configure()在应用启动时被正确调用,你的AppDelegate代码无明显问题,但可在调用数据库操作前打印FirebaseApp.app(),确认Firebase已成功初始化。
内容的提问来源于stack exchange,提问作者PiterPan

