首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问其他项目修复iOS中的数据

访问其他项目修复iOS中的数据
EN

Stack Overflow用户
提问于 2020-12-16 12:35:08
回答 1查看 163关注 0票数 0

我正在使用这个文档在多个项目之间构建聊天

也就是说,我有2个应用程序/ Firebase项目。

应用程序A和应用程序B

现在我已经在App的Firestore中实现了简单的集合,它工作得很好,没有任何问题。

我的问题是当我想使用上面的文档从App访问App的Firestore时

我得到了错误 Domain=FIRFirestoreErrorDomain Domain=FIRFirestoreErrorDomain Code=7“缺少或不足的权限

我附上了收藏的图片

规则是

代码语言:javascript
复制
service cloud.firestore {
   match /databases/{database}/documents {
      match /{document=**} {
          allow read, write: if true;
      }
  }
}

我在应用程序B的ChatViewController上配置的代码如下

代码语言:javascript
复制
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
            }
      }
 }
EN

回答 1

Stack Overflow用户

发布于 2021-01-04 18:25:26

通过研究这个文档链接,我克服了问题,代码如下所示

代码语言:javascript
复制
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"

FirebaseApp.configure(name: "secondary", options: secondaryOptions)

// Retrieve a Real Time Database client configured against a specific app.
guard let secondary = FirebaseApp.app(name: "secondary")
     else { assert(false, "Could not retrieve secondary app") }

let firestoreSecondary = Firestore.firestore(app: secondary)
var collectionReference:CollectionReference?
collectionReference =
firestoreSecondary.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
         }
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65323387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档