Android 解析云函数向特定用户发送JSON
我创建了一个应用程序,用户可以在其他用户中发送消息(通知)。对于这些问题,我使用parse SDK。因此,我使用下面的代码将消息从设备发送到解析云中Android 解析云函数向特定用户发送JSON,android,json,parse-platform,Android,Json,Parse Platform,我创建了一个应用程序,用户可以在其他用户中发送消息(通知)。对于这些问题,我使用parse SDK。因此,我使用下面的代码将消息从设备发送到解析云中 final ParseQuery<ParseUser> query = ParseUser.getQuery(); query.whereEqualTo("email", "user@email.com"); query.getFirstInBackground(new GetCallback<ParseUser&
final ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", "user@email.com");
query.getFirstInBackground(new GetCallback<ParseUser>() {
public void done(ParseUser object, ParseException e) {
if (e == null) {
Toast.makeText(getActivity(), "User found", Toast.LENGTH_SHORT).show();
String search_username = object.getString("username");
String id = object.getObjectId();
Log.d("ObjectID:",id);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("recipientId", id);
params.put("message", username);
ParseCloud.callFunctionInBackground("sendPushToUser", params, new FunctionCallback<String>() {
public void done(String success, ParseException e) {
if (e == null) {
// Push sent successfully
Toast.makeText(getActivity(), "Request send", Toast.LENGTH_SHORT).show();
}
}
});
}))
但消息一直没有收到。如果我从parse dashboard发送推送通知,一切正常。有人知道怎么解决吗?设备希望收到JSON,那么我的云函数可能没有以JSON格式发送数据吗?提前感谢我在发送通知时遇到了两个问题
- 启用客户端推送“不适用于您的情况”
- 未在安装中保存用户“尝试以下操作”
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.addUnique("userId", currentUser.getObjectId());
installation.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
// check the returned exception
if (e == null) {
// everything worked fine
} else {
// error occurred
}
}
});
希望有帮助:)
更新在您的代码中,您正在发送收件人用户名。虽然您也在云函数中保存了用户名,但您也有同样的问题,用户名已保存,但您根据id查询安装。我已更新了上面的安装,还将云函数中的“用户”更改为“用户id”
你启用了客户端推送吗?没有,我认为启用客户端推送不需要使用云函数,我启用了客户端推送,但什么都没有发生。我还使用以下命令保存我的用户:ParseUser user=new ParseUser();user.setUsername(用户名);user.setEmail(email);user.signUpInBackground(新的SignUpCallback(){我可以不将数据发送到JSON对象吗?当我在设备中收到通知时,我尝试获取JSON对象将用户信息保存到安装与注册不同,注册后请尝试上面的代码,并告诉我结果否,没有再次发生任何事。在分析仪表板中显示通知,但发送的推送再次为零。是吗您是否也将收件人用户添加到安装中?我认为您只发送了
数据:{“警报”:{“数据”:{“消息”:“消息”,“标题”:“标题”}}
请尝试使用您自己的数据进行设置
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.addUnique("userId", currentUser.getObjectId());
installation.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
// check the returned exception
if (e == null) {
// everything worked fine
} else {
// error occurred
}
}
});
pushQuery.equalTo("userId", recipientUser);