解析Unity3D中的查询

时间:2015-05-22 21:26:28

标签: unity3d parse-platform

今天是Parse的第一天,我遇到了一个无法解决的问题:

我做了这个无效:

public void GetUserOfParse()
{
    parseState = parseInfoState.BEFORE_QUERY;
    int i = 0;
    var userQuery = ParseObject.GetQuery("UserInfo").WhereEqualTo("userID", PlayGamesPlatform.Instance.GetUserId());     
    userQuery.FirstAsync().ContinueWith(t =>
    {
        Debug.Log("in continuation"); 
    }
}

现在,如果我在Unity Editor中启动项目,它的效果很好 - PlayGamesPlatform.Instance.GetUserId()是' 0'在Unity Editor中,所以FirstAsync使用userID == 0返回ParseObject。 但是当我尝试在Android设备上启动它时,FirstAsync没有响应,它没有进入ContinueWith,我没有得到继续"调试。

我还需要做些什么来让查询在编辑器外工作吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

在没有系统反馈的情况下解决问题非常困难;因此,我建议您查看此link以找出让系统显示错误代码所需的内容。

在上面的链接中,这个代码示例在标题下面提供了几个段落,这看起来是调试问题的好地方。如果此代码可以在您的解决方案中使用,您应该从这里开始查看去处。

try
{
    user.SignUpAsync().ContinueWith(t => {
        if (t.IsFaulted) {
            // Errors from Parse Cloud and network interactions
            using (IEnumerator<System.Exception> enumerator = t.Exception.InnerExceptions.GetEnumerator()) {
                if (enumerator.MoveNext()) {
                    ParseException error = (ParseException) enumerator.Current;
                    // error.Message will contain an error message
                    // error.Code will return "OtherCause"
                }
            }
        }
    });
}
catch (InvalidOperationException e)
{
    // Error from the SDK logic checks
    // e.Message will contain the specific error
    // ex: "Cannot sign up user with an empty name."
}

系统开始报告错误代码后,请查看此link以找出这些错误代码的含义,以确定故障排除过程的下一步。我希望这会有所帮助。