Вопрос:

Добавление данных в массив в коде Parse Cloud

javascript arrays swift parse-platform cloud

487 просмотра

2 ответа

15 Репутация автора

Я пишу функцию Parse Cloud Code для добавления двойного к массиву для системы голосования:

Parse.Cloud.define("addVote", function(request){

    Parse.Cloud.useMasterKey();

    var id = request.params.key
    var vote = request.params.vote

    var query = new Parse.Query("Post");
    query.equalTo("objectID", id);
    query.find({
        success: function(poll){
            poll.add("votes", vote)
            poll.save();
        },
        error: function(error){
            console.error("Got an error");
        }
    });
});

Я вызываю функцию с помощью:

PFCloud.callFunctionInBackground("addComment", withParameters: ["key" : key, "vote": self.vote)]

Я получаю ответ «TypeError: У объекта нет метода add». Что я делаю не так, что вызывает эту ошибку?

Автор: tjlsmith Источник Размещён: 20.02.2016 12:33

Ответы (2)


0 плюса

15 Репутация автора

Решение, которое я нашел:

Parse.Cloud.define("addVote", function(request){

    Parse.Cloud.useMasterKey();

    var id = request.params.key
    var answer = request.params.vote

    var query = new Parse.Query("Post");
    query.get(id, {
        success: function(post){
            post.add("votes", vote);
            post.save();
        },
        error: function(error){
            console.error("Got and error");
        }
    });
});
Автор: tjlsmith Размещён: 24.02.2016 04:24

0 плюса

11 Репутация автора

Код ниже является примером для обновления данных пользователей. этот код на 100% работает проверено на back4app.com

перед использованием этого кода вы должны объявить свою переменную, как показано ниже: экспортировать асинхронную функцию prepareForSending (form) {// доступные режимы: текст, числа, файлы, указатели и другие, которые вам нужно

custome some of my code with your needs
  let FORM = [
    {
      mode: "text",
      object: "name",
      value: form.name
    },
    {
      mode: "text",
      object: "phone",
      value: form.phone
    },
    {
      mode: "text",
      object: "address",
      value: form.address
    },
    {
      mode: "text",
      object: "clientStatus",
      value: form.clientStatus.selected
    },
    {
      mode: "pointer",
      object: "role",
      value: {
        __type: "Pointer",
        className: "_Role",
        objectId: form.roles.selected
      }
    }
  ];

  return FORM;
}

и тогда, теперь вы можете использовать код ниже

export function ParseUserManualUpdater(ID, DATA) {
  //ID is a users objectId target
  return new Promise(async (resolve, reject) => {
    const params = {
      id: ID,
      data: DATA
    };
    const Cloud = await Parse.Cloud.run("usersUpdater", params);
    if (Cloud == "success") {
      resolve(true);
    } else {
      resolve(false);
    }
  });
}

и загрузите этот код в ваше облако кодов

Parse.Cloud.define("usersUpdater", function(request, response) {
  //  how can I use GET parameters here??
  var ID = request.params.id;
  var DATA = request.params.data;

  const User = new Parse.User();
  const query = new Parse.Query(User);
  query.get(ID).then(user => {
    for (let i = 0; i < DATA.length; i++) {
      let mode = DATA[i].mode;
      let object = DATA[i].object;
      let value = DATA[i].value;
      if (mode == "text") {
        user.set(object, value);
      } else if (mode == "number") {
        user.set(object, Number(value));
      } else if (mode == "pointer") {
        user.set(object, value);
      } else if (mode == "file") {
        user.set(
          object,
          new Parse.File(value.file.name, {
            base64: value.file.base64
          })
        );
      }
    }
    user.save(null, {useMasterKey: true}).then(
      resSucces => {
        response.success("success");
      },
      resError => {
        response.error("error");
      }
    );
  });
});

я надеюсь, мой код может помочь кому-то там

Автор: Alauddin Afif Cassandra Размещён: 13.06.2019 03:33
Вопросы из категории :
32x32