【发布时间】:2020-12-16 12:35:08
【问题描述】:
我正在使用 Firestore 在多个项目之间建立聊天,使用此 Doc
即我有 2 个应用程序/Firebase 项目。
应用 A 和应用 B
现在我已经在 App A 的 Firestore 中实现了简单的集合,它工作正常,没有任何问题。
我的问题是当我想使用上述文档从 App B 访问 App A 的 Firestore
我收到错误Error Domain=FIRFirestoreErrorDomain Code=7“权限缺失或不足
我附上了收藏的图片
规则是
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
我在App B的ChatViewController上配置的代码如下
let secondaryOptions = FirebaseOptions(googleAppID: "1:27992087142:ios:2a4732a34787067a",
gcmSenderID: "27992087142")
secondaryOptions.apiKey = "AIzaSyBicqfAZPvMgC7NZkjayUEsrepxuXzZDsk"
secondaryOptions.projectID = "projectid-12345"
secondaryOptions.bundleID = "com.google.firebase.devrel.FiroptionConfiguration"
secondaryOptions.databaseURL = "https://myproject.firebaseio.com"
guard let secondary = FirebaseApp.app(name: "secondary")
else { assert(false, "Could not retrieve secondary app") }
// Retrieve a Real Time Database client configured against a specific app.
let _ = Database.database(app: secondary)
var collectionReference:CollectionReference?
collectionReference =
Firestore.firestore().collection("eclinic").document("1002").collection("chats")
collectionReference?.order(by: "timestamp", descending: false).addSnapshotListener { [self] (snapShot, err) in
if let error = err {
print("Error \(error)")
}else{
guard let snapDoc = snapShot?.documents else {
print("Return ")
return
}
}
}
【问题讨论】:
-
你确定这些规则是在数据所在的app A的项目上设置的吗?安全规则仅适用于部署它们的一个项目,不适用于其他项目。
-
@DougStevenson 是的,我正在使用我的数据所在的 App A 的 Firestore,请建议我应该怎么做才能从 App B 访问它
标签: ios swift firebase google-cloud-firestore firebase-security