我正在使用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
的权限中设置了每个复选框,因此权限不一定是这种情况。可能是这种行为的原因是什么?
更新。以下是一个类似的问题,没有令人满意的答案: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
答案 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"));
}
}
});