简体   繁体   English

错误:Firebase.set失败:第一个参数在属性“ achv_img”中包含未定义

[英]Error: Firebase.set failed: First argument contains undefined in property 'achv_img'

I followed this post 我关注了这篇文章

Having form using angular and firebase achievementsapp.firebaseapp.com , you can register and then if you click on the green plus it should pop the form, upload button is not working and when click on Add button it gives me this error Error: Firebase.set failed: First argument contains undefined in property 'achv_img' 使用angular和firebase 成就拥有表单,您可以注册,然后单击绿色加号,它将弹出表单,上传按钮不起作用,单击添加按钮时,出现此错误错误:Firebase。设置失败:第一个参数包含未定义的属性“ achv_img”

controller code: 控制器代码:

myApp.controller('MeetingsController',
  function($scope, $rootScope, $firebase, Uploader,
    CountMeetings, FIREBASE_URL) {

  var ref = new Firebase(FIREBASE_URL + '/users/' + 
    $rootScope.currentUser.$id + '/meetings');

  var meetingsInfo = $firebase(ref);
  var meetingsObj = meetingsInfo.$asObject();

  meetingsObj.$loaded().then(function(data) {
    $scope.meetings = data;
  }); //make sure meetings data is loaded

  $scope.addMeeting = function() {
    meetingsInfo.$push({
      name: $scope.meetingname,
      description: $scope.meetingdescription,
      achv_type: $scope.achvtype,
      achv_date: $scope.achvdate,
      achv_img : $scope.achvimg,
      date: Firebase.ServerValue.TIMESTAMP
    }).then(function() {
      $scope.meetingname='';
      $scope.achvtype = '';
      $scope.meetingdescription='';
      $scope.achvdate='';
      $scope.achvimg= $scope.meetingsInfoImgData;
    });
    Uploader.create($scope.meetingsInfo);


  $scope.handleFileSelectAdd = function(evt) {
    var f = evt.target.files[0];
    var reader = new FileReader();
    reader.onload = (function(theFile) {
      return function(e) {
        var filePayload = e.target.result;
        $scope.meetingsInfoImgData = e.target.result; 
        document.getElementById('pano').src = $scope.meetingsInfoImgData; 
      };
    })(f);
    reader.readAsDataURL(f);
  };
  document.getElementById('file-upload').addEventListener('change', $scope.handleFileSelectAdd, false);


  }; //addmeeting

  $scope.deleteMeeting = function(key) {
    meetingsInfo.$remove(key);
  }; //deleteMeeting

}); //MeetingsController

In reader.onload() you take the image data from the file and put it into $scope.meetingsInfoImgData : reader.onload()您从文件中获取图像数据,并将其放入$scope.meetingsInfoImgData

reader.onload = (function(theFile) {
  return function(e) {
    var filePayload = e.target.result;
    $scope.meetingsInfoImgData = e.target.result; 
    document.getElementById('pano').src = $scope.meetingsInfoImgData; 
  };
})(f);

My original answer then uses its equivalent of this $scope.meetingsInfoImgData later to populate the JavaScript object that it sends to Firebase: 然后,我的原始答案将使用与此等效的$scope.meetingsInfoImgData来填充它发送给Firebase的JavaScript对象:

$scope.episode.img1 = $scope.episodeImgData;
var episodes = $firebase(ref).$asArray();
episodes.$add($scope.episode);

Your code does nothing with $scope.meetingsInfoImgData when it tries to create the object in Firebase. 尝试在Firebase中创建对象时,您的代码对$scope.meetingsInfoImgData不执行任何操作。 You'll probably need something akin to $scope.episode.img1 = $scope.episodeImgData; 您可能需要类似于$scope.episode.img1 = $scope.episodeImgData; in your code too. 在您的代码中。

If for some reason you can not fix it at the source, to make sure your object does not contain any undefined props use this simple trick: JSON.parse( JSON.stringify(ObjectToSave ) ) 如果由于某种原因您不能从源头修复它,请使用以下简单技巧来确保您的对象不包含任何未定义的道具: JSON.parse( JSON.stringify(ObjectToSave ) )

For more info take a look at this codePen: http://codepen.io/ajmueller/pen/gLaBLX 有关更多信息,请查看此代码笔: http ://codepen.io/ajmueller/pen/gLaBLX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 firebase.js:1 Uncaught (in promise) Error: Reference.set failed: 第一个参数包含未定义的属性 - firebase.js:1 Uncaught (in promise) Error: Reference.set failed: First argument contains undefined in property 获取未捕获错误:Reference.set 失败:尝试将数据保存到 Firebase 存储时,第一个参数在属性中包含未定义 - Getting Uncaught Error: Reference.set failed: First argument contains undefined in property when trying to save the data to firebase storage firebase - Reference.set 失败:第一个参数在属性“users.undefined.profileImageUrl”中包含未定义 - firebase - Reference.set failed: First argument contains undefined in property 'users.undefined.profileImageUrl' Firebase.update 失败:第一个参数在属性中包含未定义 - Firebase.update failed : first argument contains undefined in property Firebase:第一个参数包含未定义的属性 - Firebase : First Argument contains undefined in property 未捕获的错误:Reference.set 失败:第一个参数在属性“Users.ji8A7TkSldfdvieDqGxko9eV3Jy1.gender”中包含未定义 - Uncaught Error: Reference.set failed: First argument contains undefined in property 'Users.ji8A7TkSldfdvieDqGxko9eV3Jy1.gender' 未处理的拒绝(错误):Reference.set 失败:第一个参数在属性“signup.test.Robots.props.history.location.state”中包含未定义 - Unhandled Rejection (Error): Reference.set failed: First argument contains undefined in property 'signup.test.Robots.props.history.location.state' Reference.set 失败:第一个参数在属性“users.undefined.profileImageUrl”中包含未定义 - Reference.set failed: First argument contains undefined in property 'users.undefined.profileImageUrl' JS Google Cloud Function错误:Reference.update失败:第一个参数包含属性中未定义的 - JS Google Cloud Function Error: Reference.update failed: First argument contains undefined in property Reference.push 失败:第一个参数在属性中包含未定义 - Reference.push failed: first argument contains undefined in property
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM