Parse中的_User字段始终为null

时间:2015-07-26 12:12:35

标签: android parse-platform

我正在使用Parse 1.9.4为我的移动应用开发后端。 我遇到了一个问题。 在云端,我为用户设置了一个电话号码。 我可以通过打开_User表来检查该数字是否已在Parse Web控制台中设置,我在其中查看实际值。 但我无法在客户端检索它。

我最近的尝试如下:

ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() {
    @Override
    public void done(ParseObject parseObject, ParseException e) {
        System.out.println(parseObject.getObjectId());
        System.out.println(parseObject.get("username"));
        System.out.println(parseObject.get("phone"));
    }
});

以下是上述代码的输出:

07-27 09:46:39.113  17452-17452/com.example.app I/System.out﹕ NpD5l9Gw54
07-27 09:46:39.113  17452-17452/com.example.app I/System.out﹕ HOMAiJeuil7qD2kK1cUjZLVkj
07-27 09:46:39.113  17452-17452/com.example.app I/System.out﹕ null

我可以获得username以及objectId,但不能获得phone,这始终是null。我在_User的权限中设置了每个复选框,因此权限不一定是这种情况。可能是这种行为的原因是什么?

更新。以下是数据浏览器的屏幕截图: enter image description here

更新。以下是一个类似的问题,没有令人满意的答案:Accessing a custom column in Parse.com user table returning me null

Parse控制台的输出。

I2015-07-26T11:46:11.550Z]v19 Ran cloud function sendVerificationCode for user NpD5l9Gw54 with:
  Input: {"phone":"11223"}
  Result: {
"cost": "0.7",
"cnt": 1
}

根据@danh的建议,我检查了如果我在客户端修改用户,我可以在客户端上获取数据,但是它没有到​​达云端(所以在数据浏览器中我看到了旧的值)。

    ParseUser.getCurrentUser().put("phone", "12345");
    System.out.println(ParseUser.getCurrentUser().getString("phone"));

输出:

07-27 10:52:36.995  14621-14621/com.example.app I/System.out﹕ 12345

1 个答案:

答案 0 :(得分:0)

试试这个,它会产生结果并让我知道你的结果

ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
query.whereEqualTo("objectId", "NpD5l9Gw54");
query.getFirstInBackground(new GetCallback<ParseObject>() {
      public void done(ParseObject object, ParseException e) {
         if (object == null) {
           Log.d("score", "The getFirst request failed.");
         } else {
            System.out.println(object.get("username"));
            System.out.println(object.get("phone"));
         }
    }
});