我的 Android 应用程序使用 Parse 服务器进行后端服务。许多用户目前正在使用我的 Android 应用程序。但是,某些特定用户在安装应用程序时遇到了即使登录后也没有在安装表中创建对象的问题。
当我使用一些分析代码从我的 Android 应用程序中查看问题时,我发现ParseInstallation.getCurrentInstallation().getObjectId()
即使 Parse 初始化过程已正确完成,它也会为用户返回 null。使用 Analytics 代码,我在 Parse 初始化后的 10 分钟内每 10 秒检查一次该方法,但该方法始终为特定用户返回 null。
// Parse initialization in the onCreate() of Application class
Parse.enableLocalDatastore(this);
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId(getString(R.string.parse_app_id))
.clientKey(getString(R.string.parse_client_key))
.server(getString(R.string.parse_server_api))
.build());
ParseUser.enableAutomaticUser();
ParseACL.setDefaultACL(new ParseACL(), true);
// After Log-In, Save the installation.
// (My app user normally would come here 20 ~ 30 seconds or long after the above Parse initialization.)
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
if (!TextUtils.isEmpty(installation.getObjectId()) { // installation.getObjectId() returns null for the particular user.
installation.put("GCMSenderId", getString(R.string.fcm_sender_id));
installation.saveInBackground(
// will associate the Installation with the User in new SaveCallback()
);
}
// build.gradle(Module: app)
implementation 'com.github.parse-community.Parse-SDK-Android:parse:1.18.5'
implementation 'com.github.parse-community.Parse-SDK-Android:fcm:1.18.5'
大多数用户获得有效的 ObjectId 并正常工作,没有任何问题。但是,一旦用户遇到问题,即使用户再次安装应用程序,也不会在安装表中为用户创建该对象。
我不知道这是否是 Parse 服务器的根本问题。
任何建议都会对我有所帮助。