【问题标题】:Firebase Storage not working on iMessage extensionFirebase 存储不适用于 iMessage 扩展
【发布时间】:2017-02-03 00:50:46
【问题描述】:

我正在尝试将 Firebase 集成到 iMessage 扩展中。

作为测试,我正在设置 Firebase 并尝试使用 viewDidAppear 方法将本地文件保存到 Firebase 存储。 Firebase 实时数据库在下面的代码中工作正常,只有存储部分不能。

在普通应用中执行完全相同的代码(即不是 iMessage 扩展)。

我收到以下错误消息:

Error Domain=FIRStorageErrorDomain Code=-13000 
"An unknown error occurred, please check the server response." 
UserInfo={ResponseErrorDomain=NSURLErrorDomain, object=test.jpg,
bucket=myapp.appspot.com, ResponseErrorCode=-995, 
`NSLocalizedDescription=An unknown error occurred, please check the server response.

我正在做以下事情:

  override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    FIRApp.configure()

    FIRAuth.auth()?.signInAnonymously { (user, error) in
      guard let fileURL = Bundle.main.url(forResource: "test", withExtension:"jpg") else { return }

      let storageRef = FIRStorage.storage().reference().child("test.jpg")
      storageRef.putFile(fileURL, metadata: nil) { (metaData, error) in  //produces error
        if error != nil {
          print(error.debugDescription) 
        }
      }
      FIRDatabase.database().reference().updateChildValues(["someKey" : "someValue"]) // works fine

    }
  }

【问题讨论】:

  • 你能用putData代替putFile吗?我怀疑 iMessage 扩展程序可能会限制对文件系统的访问(因为它们与普通应用程序位于不同的沙箱中),并且无法获取文件。
  • 感谢您的快速回答!你的怀疑是对的, putData 工作得很好。非常感谢!如果你写一个答案,我可以接受。

标签: ios swift firebase firebase-storage imessage


【解决方案1】:

我怀疑 iMessage 扩展程序可能会限制对文件系统的访问(因为它们与普通应用程序位于不同的沙箱中),因此无法获取文件。在这种情况下,putData 有效,但 putFile 无效。解决方案:始终在内存中上传和下载(putDatadataWithMaxSize:)与文件系统(putFilewriteFile)。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 2017-01-26
    • 2016-09-16
    • 2018-05-22
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多