使用FindAsync后从ParseUser检索数据

时间:2014-07-30 11:48:04

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

我在Parse中创建了许多用户。有Facebook用户和非Facebook用户。对于每个Facebook用户,我已经保存了额外的" facebookID"。

现在我想获得所有Facebook用户的ParseUsers。所以我应用了一个Task来查询用户" 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<Dictionary<string,object>>而不是List<string>,以便保存其他数据。但foreach循环根本不运行。这是否意味着我只能从中获取facebookID,因为我在WhereExists("facebookID")中指定了FindAsync()?有人可以向我解释一下吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

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

对于Pointers,您可以使用“Include”方法

将它们明确地包含在结果中

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