Geo*_*dra 2 android parse-platform
我正在制作一个Android应用程序,其中有2个UserTypes是管理员和普通用户,管理员有能力控制Parse数据库编辑,添加和删除但是我遇到了有关删除用户的问题,这里是我的代码,但它不是工作的
final String userId = user.getUserId();
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("objectid", userId);
query.getFirstInBackground(new GetCallback<ParseUser>() {
public void done(ParseUser object, ParseException e) {
// TODO Auto-generated method stub
try {
object.delete();
Toast.makeText(getApplicationContext(),
"Successfully deleted Project"+userId, Toast.LENGTH_LONG).show();
//prog.dismiss();
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激thx
用户无法从客户端删除其他用户.它可以在云代码中完成Parse.Cloud.useMasterKey()
.
(顺便说一下,看起来发布的代码甚至没有通过id获取用户.这将有理由whereEqualTo("objectId", someObjectId)
找到一个对象,但解析为此调用提供了一种特殊形式的查询getInBackground()
. 请参阅Parse文档.查询.
编辑 - 在云代码中,函数将是这样的:
Parse.Cloud.define("deleteUserWithId", function(request, response) {
Parse.Cloud.useMasterKey();
var userId = request.params.userId;
var query = new Parse.Query(Parse.User);
query.get(userId).then(function(user) {
return user.destroy();
}).then(function() {
response.success(user);
}, function(error) {
response.error(error);
});
});
Run Code Online (Sandbox Code Playgroud)
从客户端(虽然我是一个java dilettante):
HashMap<String, String> params = new HashMap<String, String>();
params.put("userId", userId);
ParseCloud.callFunctionInBackground("deleteUserWithId", params, new FunctionCallback<Float>() {
void done(Object result, ParseException e) {
if (e == null) {
// success
}
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1878 次 |
最近记录: |