Open ncmbsupport opened 3 years ago
ご質問いただき、ありがとうございます。 以下の検証コードでお客様と同様エラー再現することができました。(動作検証環境:Android SDK 4.0.1, Android 7.1.1)
NCMB.initialize(this.getApplicationContext(), "APPKEY", "CLIENTKEY");
final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation();
if (installation != null) {
Log.d("Debug","NCMB Installation" + installation.getObjectId());
}
try {
installation.put("favorite", favoriteString");
} catch (NCMBException e) {
e.printStackTrace();
}
installation.saveInBackground(new DoneCallback() {
@Override
public void done(NCMBException e) {
if (e != null) {
Log.d("Debug","NCMB Error/"+e.toString());
}else{
Log.d("Debug","NCMB Sussess");
}
}
});
com.nifcloud.mbaas.core.NCMBException: java.lang.IllegalArgumentException: registrationId is must not be null.
initialize処理直後にinstallationを更新したことが原因で発生するエラーです。installation登録処理が完了せず、カスタムフィールド (favorite)を追加し、installationを更新する処理を実行すると上記のエラーが発生します。 (initialize処理時にinstallationの登録を行っており、登録するためにはdeviceTokenが必要となりますが、deviceTokenを取得する処理には時間がかかることがあります。)
initialize時にカスタムフィールドを追加する場合は以下のドキュメントに記載している方法をご参考にしてください。 尚、initialize時以外であればご連絡いただいた実装で更新できることを確認いたしました。
Map<String,String> customFields = new HashMap<>();
customFields.put("favorite", "favoriteString");
NCMB.initialize(this.getApplicationContext(), "APPKEY", "CLIENTKEY",customFields);
以上、引き続きニフクラ mobile backendを宜しくお願い致します。
NCMB Android SDK Version 4.0.1を利用していて、installationクラスに新たにfavoriteフィールドを作り、文字列をセットしようとしています。以下のように書いたのですがエラーが出てうまくいきません。 解決方法があればご教示いただけましたら幸いです。