Javascript cordova相机图片无法上传到firebase

时间:2017-08-11 06:45:48

标签: javascript cordova firebase firebase-storage phonegap

我正在尝试将相机图片从cordova app上传到firebase存储。它在webbrowser中运行良好,但没有通过cordova工作。我搜索了很多,但无法找到确切的解决方案。

这是我写的代码: -

        onOpenCamera: function(oEvent){
            var oImage = this.getView().byId("profilePicId");
            navigator.camera.getPicture(onSuccess, onFail, { 
                quality: 25,
                destinationType: Camera.DestinationType.FILE_URI,
                sourceType: Camera.PictureSourceType.CAMERA
            });
            function onSuccess(imageURI) {
                //var options = { quality: 100 };
                //plugins.crop(function success (newPath) {
                    oImage.setSrc(imageURI);
                    var sBusyDialog = new BusyDialog({
                        customIcon: "Images/loader.gif",
                        customIconDensityAware: false
                        });
                    sBusyDialog.open();
                    var profileUploadRequest = Firebase.uploadFile('users/'+ Firebase.currentUser().uid + '/Profile.png', imageURI);   
                    profileUploadRequest.then(function(snapshot){
                        sBusyDialog.close();
                        var oProfileUpdate = Firebase.updateProfilePic(snapshot.downloadURL);
                        oProfileUpdate.catch(function(oError){
                            sBusyDialog.close();
                            var message = oError.message;
                            MessageBox.show(message, {
                                title : oError.code,
                                icon : sap.m.MessageBox.Icon.ERROR
                            });
                        });
                    });
                    profileUploadRequest.catch(function(oError){
                        sBusyDialog.close();
                        var message = oError.message;
                        MessageBox.show(message, {
                            title : oError.code,
                            icon : sap.m.MessageBox.Icon.ERROR
                        });
                    });
            /*  }, function fail (error) {
                    MessageToast.show('Failed because: ' + error);
                }, imageURI, options);*/
            }

            function onFail(message) {
                MessageToast.show('Failed because: ' + message);
            }
        },

This is Firebase file:-
        uploadFile: function(path, dataUrl){
            var storageRef = firebase.storage().ref();
            var profileRef = storageRef.child(path);
            return profileRef.putString(dataUrl, 'data_url');
        },

请检查一次。 我已经完成了所有的stackoverflow解决方案,比如创建一个blob,使用cordova文件插件。我在firebase中读过,cordova不支持文件上传,但下载有效。

感谢。

0 个答案:

没有答案