【问题标题】:Retrieve data from ParseUser after using FindAsync使用 FindAsync 后从 ParseUser 检索数据
【发布时间】:2014-07-30 11:48:04
【问题描述】:

我在 Parse 中创建了许多用户。有 Facebook 用户和非 Facebook 用户。对于每个 Facebook 用户,我都保存了一个额外的“facebookID”列。

现在我想获取所有 Facebook 用户的 ParseUser。所以我应用了一个任务来查询其中包含“facebookID”的用户。

var Task = ParseUser.Query.WhereExists("facebookID").FindAsync().ContinueWith(t=>{

        if (t.IsFaulted || t.IsCanceled) {
            Debug.Log ("t.Exception=" + t.Exception);
            //cannot load friendlist
            return;
        }
        else{
            fbFriends = t.Result;

            foreach(var result in fbFriends){
                string id = (string)result["facebookID"];

                //facebookUserIDList is a List<string>
                facebookUserIDList.Add(id);
            }

            return;
        }
    });

上面的代码完美运行。但是,我想从每个 Facebook 用户那里获取更多数据,例如用户拥有的 current_coins。所以我将 foreach 循环更改为:

foreach(var result in fbFriends){
    string id = (string)result["facebookID"];
    int coins = (int)result["current_coins"];
    //facebookUserIDList is a List<string>
    facebookUserIDList.Add(id);
}

我已将 facebookUserIDList 更改为 List&lt;Dictionary&lt;string,object&gt;&gt; 而不是 List&lt;string&gt;,以便同时保存其他数据。但是 foreach 循环根本不运行。这是否意味着我只能从中获取facebookID,因为我在FindAsync() 中指定了WhereExists("facebookID")?谁能给我解释一下?

非常感谢您。

【问题讨论】:

    标签: list unity3d parse-platform ienumerable facebook-unity-sdk


    【解决方案1】:

    它应该包含每个 Object 的所有 Parse 原始数据类型(例如 Boolean、Number、String、Date...)。但不是指针也不是关系。

    对于指针,您可以使用“包含”方法将它们显式包含在结果中

    对于任何 ParseRelation,您必须重新查询它们

    【讨论】:

    • 你是对的。我不知道“数字”数据类型是 Int64 而不是 Int32。所以它不能用我上面的方式直接转换为 int 。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2020-04-16
    • 2020-12-10
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多