【问题标题】:associating an array of photos with a user on parse.com将一组照片与 parse.com 上的用户相关联
【发布时间】:2014-08-18 03:55:51
【问题描述】:

我正在尝试将多张用户照片上传到 parse.com 并将它们与用户对象相关联。我正在使用 javascript sdk https://www.parse.com/docs/js_guide#objects-types 我能够成功地将照片保存为文件对象。但是当我尝试在用户对象/表中构建一个数组列时,sdk 会出错。

我在保存用户对象时收到错误JSON.stringify cannot serialize cyclic structures.

profileController.js

// uploads photo to rest api given local file_uri
$scope.addPhoto = function() {

  var file = new Parse.File("profile-image.jpeg", { base64: $scope.imageData });
  file.save().then(function(res) {
    console.log('success', res);
    var array = ['foo', file];
    $scope.user.set('photos', array);
    $scope.user.save();
  }, function(error) {
      console.log('error', error);
  });
};

当被序列化的对象持有对自身的引用时,会出现此错误。那么我的问题是 - 有没有办法将所有用户图像文件与 parse.com 上的用户对象相关联?理想情况下作为数组列,因为我知道每个用户的个人资料图像永远不会超过 5 个。

【问题讨论】:

  • 这是 sdk stackoverflow.com/questions/25297590/… 中的一个开放错误
  • 通过使用另一个类来保存包含文件的数组来避免“循环”错误。在 _User 中添加一列,该列是指向包含照片数组的新 Class 对象的指针。任何时候只要你想要 _User 时,做一个获取 _User 和 Class.pic.arrayHolder 的平面查询并不难。
  • @RobertRowntree 现在我只是在用户上存储一个由文件的 url 组成的数组列。如果我启动垃圾收集正确,这可能会中断?你也可以写下你的建议作为答案吗?图表会很棒
  • 它的解析。随心所欲。不用担心 GC
  • @RobertRowntree 让我来限定它。 Parse 说,如果您启动 GC,所有未引用文件都将被删除。我的问题是,如果我只是将 urlstring 保留在某个表中,那是一个参考吗?我想不是。我认为 GC 减少 refs 就像指针列之类的。

标签: javascript parse-platform


【解决方案1】:

PictureHolder.Class

 {"photos":["url": $parseFile1, "url":$parseFile2, "url":$parseFile3...]}

_User 包含以下指针列。

{"linkPhotos":{"__type":"Pointer","className":"PictureHolder","objectId":$ID_Pointed_TO}}

对 _User 表的平面查询只需将以下内容添加到 Query.parms...

 include=linkPhotos

这将内联到 Json 响应中,即第二个表中完整的链接行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多