Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase存储不在iMessage扩展上工作_Ios_Swift_Firebase_Firebase Storage_Imessage - Fatal编程技术网

Ios Firebase存储不在iMessage扩展上工作

Ios Firebase存储不在iMessage扩展上工作,ios,swift,firebase,firebase-storage,imessage,Ios,Swift,Firebase,Firebase Storage,Imessage,我正在尝试将Firebase集成到iMessage扩展中 作为一项测试,我正在设置Firebase,并尝试在viewdide方法中将本地文件保存到Firebase存储中。Firebase实时数据库在下面的代码中运行良好,只有存储部分没有 在普通应用程序(即不是iMessage扩展)中完成时,完全相同的代码可以工作 我收到以下错误消息: Error Domain=FIRStorageErrorDomain Code=-13000 "An unknown error occurred, pleas

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

作为一项测试,我正在设置Firebase,并尝试在
viewdide
方法中将本地文件保存到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

    }
  }

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

您能尝试
putData
而不是
putFile
?我怀疑iMessage扩展名对文件系统的访问可能会受到限制(因为它们与普通应用程序位于不同的沙箱中),而这样获取文件是行不通的。感谢您的快速回答!你的怀疑是对的,putData工作得很好。谢谢!如果你写一个答案,我可以接受。你救了我一周!非常感谢你。