2

base64 イメージを Firebase にアップロードできますか?

私はこのコードを試しました:

                    var storageRef = firebase.storage().ref();
                console.log(storageRef);                                        
                var file = "data:image/jpeg;base64,BASE64.....";

                var uploadTask = storageRef.child('avatars/'+user.providerData[0].uid+'/photo-'+$scope.number+'.jpg').put(file);
                uploadTask.on('state_changed', function(snapshot){
                }, function(error) {
                  console.log('error');
                }, function() {
                  console.log('success');
                  var downloadURL = uploadTask.snapshot.downloadURL;
                });

しかし、私はエラーがあります:

{code: "storage/invalid-argument", message: "Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.", serverResponse: null, name: "FirebaseError"}
4

3 に答える 3

0

Firebase Storage は、文字列ではなく、JSファイルまたはBlob型を取ります。base64でエンコードされたデータをファイルに保存してからアップロードできますが、それらを「実際の」ファイルに変換することをお勧めします(jpgまたはpng、写真のように見えると判断します)。 、圧縮などの利点を得る

于 2016-06-02T17:44:18.207 に答える