You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何在Parse平台获取其他用户的用户名?

解决Parse Android端仅能获取当前用户用户名的问题

问题现象

在Android端使用Parse平台查询_User类时,无论是否添加排除当前用户的条件,都只能获取到当前登录用户的用户名,_User类中实际存在其他用户,但Logcat无报错信息。

可能原因及解决方法

1. 现有用户的ACL权限未配置公开读权限

你代码中设置的默认ACL仅对新创建的用户生效,已存在的用户的ACL不会自动更新。需要为这些用户手动配置公开读权限:

  • 登录Parse Dashboard,进入_User类,选中所有需要被查询到的用户,批量修改它们的ACL,开启Public Read Access权限。
  • 或者通过代码批量更新(仅建议在测试环境使用):
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>() {
    @Override
    public void done(List<ParseUser> users, ParseException e) {
        if (e == null) {
            for (ParseUser user : users) {
                ParseACL acl = new ParseACL();
                acl.setPublicReadAccess(true);
                user.setACL(acl);
                user.saveInBackground();
            }
        } else {
            e.printStackTrace();
        }
    }
});

2. Parse服务器配置限制了用户列表查询

部分Parse服务器版本默认限制客户端查询_User类的全部用户,需要修改服务器配置:

  • 在Parse服务器的配置文件(如config.json)中,添加或修改allowClientClassQueries配置,允许客户端查询_User类:
{
  "allowClientClassQueries": ["_User"]
}

修改后重启Parse服务器。

3. 代码优化

  • 移除冗余代码:你代码中的ParseUser user= new ParseUser();未被使用,可直接删除。
  • 确保全局ACL初始化:建议在Application类的onCreate方法中初始化默认ACL,而非Activity中,确保全局生效:
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(new Parse.Configuration.Builder(this)
                .applicationId("YOUR_APP_ID")
                .clientKey("YOUR_CLIENT_KEY")
                .server("YOUR_PARSE_SERVER_URL")
                .build());
        
        // 设置默认ACL
        ParseACL defaultACL = new ParseACL();
        defaultACL.setPublicReadAccess(true);
        ParseACL.setDefaultACL(defaultACL, true);
    }
}

记得在AndroidManifest.xml中注册这个Application类。

4. 验证当前用户状态

确保查询时当前用户已正常登录,可在查询前添加判断:

if (ParseUser.getCurrentUser() == null) {
    // 处理未登录情况,比如跳转登录页
    return;
}

内容的提问来源于stack exchange,提问作者Bouchra bicho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:37:05