は、私はファイルをアップロードしようとした2つの方法があります。:ここでは、ファイル「ファイル名は」開くことができませんでしたエラー
1.
getURLOfPhoto(assetURL: imagesDictionary[String(whichProfileImage)]! , completionHandler: { (responseURL) in
FIRStorage.storage().reference().putFile(responseURL as! URL)
})
2.
let assets = PHAsset.fetchAssets(withALAssetURLs: [imagesDictionary[String(whichProfileImage)] as! URL], options: nil)
let asset = assets.firstObject
asset?.requestContentEditingInput(with: nil, completionHandler: { (contentEditingInput, info) in
let imageFile = contentEditingInput?.fullSizeImageURL?
FIRStorage.storage().reference().child("test").putFile(imageFile!, metadata: nil) { (metadata, error) in
if let error = error {
return
}
}
})
私はこのエラーを取得しています:
Body file is unreachable: /var/mobile/Media/DCIM/100APPLE/picture.JPG
Error Domain=NSCocoaErrorDomain Code=257 "The file “picture.JPG” couldn’t be opened because you don’t have permission to view it."
UserInfo={NSURL=file:///var/mobile/Media/DCIM/100APPLE/picture.JPG, NSFilePath=/var/mobile/Media/DCIM/100APPLE/picture.JPG,
NSUnderlyingError=0x15da49a0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
URLが正常に取得されているようですが、エラーはputFile()
メソッドが呼び出されたときにのみ発生します。
このエラーやファイル(Dataオブジェクトではない)をFirebase Storageにアップロードする方法を知っている人はいませんか?事前
アプリがクラッシュするか、エラーログに記録されますか?あなたにそれを見る権限がないと言うなら、私はFirebaseの設定で確認します。 – Echizzle
ご回答ありがとうございます。アプリはクラッシュしないで、エラーを記録するだけです。私のFirebaseストレージルールは 'allow read、write:if request.auth!= null || request.auth == null; 'であるため、Firebaseの読み取り/書き込みアクセス権によってStorage Databaseに書き込むことができます。 –