【问题标题】:Parse Cloud Code returns Parse Objects not allowed hereParse Cloud Code 返回 Parse Objects not allowed here
【发布时间】:2018-03-19 17:06:48
【问题描述】:

我正在尝试从 Parse Server 的数据库中检索数据,但遇到 500 内部错误。

我的类是“Friends”,列是“fromUser”,它是一个指向 <_user> 类的指针。

重点是从“用户”类中的“用户名”列中获取用户名。

我使用 Ionic 3 开发应用程序并尝试在当前用户登录的情况下运行该功能以检索数据。

我的云代码:

Parse.Cloud.define('FriendsQuery', function(req,res) {
const query = new Parse.Query("Friends");
query.equalTo("fromUser", request.params.currentuser);
query.find().then((results) => {
    res.success(results);
})
.catch(() =>  {
  response.error("user lookup failed");
});
});

还有我的打字稿代码

currentUser = Parse.User.current();
retrieveFriends(){
if (this.currentUser= Parse.User.current()) {
  const passdata = Parse.User.current();
  Parse.Cloud.run('FriendsQuery', {currentuser: this.currentUser }).then(
  res => {
    console.log(res)
    }
  )
}

}

有什么想法吗?

【问题讨论】:

    标签: parse-platform ionic3 parse-cloud-code


    【解决方案1】:

    所以请试试这个

    Parse.Cloud.define('FriendsQuery', function(req,res) {
    var currentId =  req.params.currentuser;
    var currentuserquery = new Parse.Query(Parse.User);
        currentuserquery.equalTo("objectId", currentId);  // find all the women
        currentuserquery.first({
          success: function(user) {
          const query = new Parse.Query("Friends");
          query.equalTo("fromUser", user);
          query.find().then((results) => {
          res.success(results);
          })
    
          }
        })
    
    .catch(() =>  {
      res.error("user lookup failed");
    });
    });
    

    【讨论】:

    • 嗨马科斯,它似乎以某种方式工作,但它在控制台日志中只返回一个对象而不是我需要的数组。此外,使用“first”它只返回一个结果。但是,使用此功能,我可以传递当前用户 ID:retrieveFriends(){ if (this.currentUser= Parse.User.current()) { console.log(this.currentUser.id) Parse.Cloud.run( 'FriendsQuery', {currentuser: this.currentUser.id}).then( res => { console.log(res) });所以我可以将用户的 id 发送到服务器,但我需要数组作为响应,而不是对象
    • 这应该返回一个对象数组,除非数据库类中只有一个对象,请发送您的解析仪表板的屏幕截图
    • 这是仪表板。也许我的查询概念是错误的。我想检索用户的朋友列表。因此,当我查询 toUser 或来自 User 时,我想要其他用户作为结果。 [链接] (imgur.com/a/L3BGO)
    • 是的,最好添加一个关系列而不是指针,这个关系将包含朋友的所有 id
    • 你的意思是在用户类中添加一个额外的列,它可以是一个朋友数组?有他们的 id?
    【解决方案2】:

    对于不允许解析云代码对象,因此您必须仅发送用户 ID 并在云中进行查询以获取用户对象,如下所示

    打字稿代码:

        currentUser = Parse.User.current();
    retrieveFriends(){
    if (this.currentUser= Parse.User.current()) {
      const passdata = Parse.User.current();
      Parse.Cloud.run('FriendsQuery', {currentuser: this.currentUser.id }).then(
      res => {
        console.log(res)
        }
      )
    }
    }
    

    云代码:

        Parse.Cloud.define('FriendsQuery', function(req,res) {
    const query = new Parse.Query("Friends");
    var currentId =  req.params.currentuser;
    var currentuserobject = {};
     var currentuserquery = new Parse.Query(Parse.User);
        currentuserquery.equalTo("objectId", currentId);  // find all the women
        currentuserquery.first({
          success: function(user) {
            user = currentuserobject;
          }
        });
    query.equalTo("fromUser", currentuserobject);
    query.find().then((results) => {
        res.success(results);
    })
    .catch(() =>  {
      response.error("user lookup failed");
    });
    });
    

    【讨论】:

    • 嗨,马科斯,谢谢。控制台日志返回一个空数组。我附加图像。我已将问题编辑为更清楚。 [链接] (imgur.com/a/t7c6v)
    猜你喜欢
    • 1970-01-01
    • 2015-10-25
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多