0
私はビデオとチュートリアルの束を見て読んだことがありますが、私は403エラーが発生しています。AngularFireを使ってFirebase Storageにファイルをアップロードするには?
私は角1
ファーストを使用していng-model
はファイルでは動作しませんので、私は角度指令を作りました。私はfile-model
私のディレクティブと呼ば:
app.directive('fileModel',['$parse', function ($parse){
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('change', function() {
$parse(attrs.fileModel)
.assign(scope, element[0].files[0])
scope.$apply();
})
}
}
}]);
それから私は、HTMLテンプレートで私のディレクティブを使用:
<form ng-submit="uploadFile(file)">
<input type="file" accept="txt" file-model="file" class="form-control">
<button type="submit" class="btn btn-primary">Upload File</button>
</form>
そして、私はコントローラにハンドラを作っ:
app.controller('myController', ['$scope', '$firebaseStorage', function($scope, $firebaseStorage) {
// Create a Firebase Storage reference
var storage = firebase.storage();
var storageRef = storage.ref();
var filesRef = storageRef.child('files');
$scope.uploadFile = function(file) {
console.log("Let's upload a file!");
console.log($scope.file);
var storageRef = firebase.storage().ref("files");
$firebaseStorage(filesRef).$put($scope.file);
};
}]);
最後に私が設定しましたFirebaseの保存ルールを「一般公開」に設定:
service firebase.storage {
match /b/myFirebaseProject.appspot.com/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
これを実行すると、テストファイルを選択してUpload File
をクリックし、ファイルが$scope
に読み込まれます。私の指示が働いています。しかし、その後、私はエラーメッセージを取得:
POST https://firebasestorage.googleapis.com/v0/b/myFirebaseProject.appspot.com/o?name=files 403()
を私はFirebaseストレージにfiles
フォルダを作成してみましたが、私は同じ403エラーを得ました。
ありがとうございます!
ありがとうございました。 Firebaseが提供する「公開」ルールをコピーして貼り付けましたが、切り取りと貼り付けにいくつか問題がありました。 –