アンドロイドでトークンFCMを保存する方法?

負にならないでください。

私は、次の午前、これを Firebaseで私deivceを登録します

ここで私は、通知のトークンを表示し、保存しようとしています

    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {

    private static final String TAG = "MyFirebaseIIDService";

    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d(TAG, "Refreshed token: " + refreshedToken);
        storeToken(refreshedToken);
    }

    private void storeToken(String token) {
        //saving the token on shared preferences
        SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
    }
}

私はそれを登録しようとすると、必ずトークン言うToken not generatedMainActivityは、

だから、ここで私のアプリケーションはFirebaseに接続されて...と私は知っているFirebaseInstanceIdService非推奨私もこれを試してみましたです

public class MyFirebaseInstanceIDService extends FirebaseMessagingService {

    private static final String TAG = "MyFirebaseIIDService";

    @Override
    public void onNewToken(String refreshedToken) {
        refreshedToken = FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken();
        Log.d(TAG, "Refreshed token: " + refreshedToken);
        storeToken(refreshedToken);
    }

    private void storeToken(String token) {
        //saving the token on shared preferences
        SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
    }
}

しかし、それでも同じトークンが生成されません

どうしたの :

ちょうどあなたのコードでこれを追加します。..

    public class MyActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);


        SharedPreferences prefs = getSharedPreferences("TOKEN_PREF", MODE_PRIVATE);
        String token = prefs.getString("token", "");

        Log.e("NEW_INACTIVITY_TOKEN", token);

        if (TextUtils.isEmpty(token)) {
            FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
                @Override
                public void onSuccess(InstanceIdResult instanceIdResult) {
                    String newToken = instanceIdResult.getToken();
                    Log.e("newToken", newToken);
                    SharedPreferences.Editor editor = getSharedPreferences("TOKEN_PREF", MODE_PRIVATE).edit();
                    if (token!=null){
                       editor.putString("token", newToken);
                       editor.apply();
                    }

                }
            });
        }

    }


}

アプリを初めてインストールしてrunnedされている場合ので、一度Firebaseトークンが呼び出され、データが共有環境設定で保存されたら、データを保存するか、またはこのアクティビティ/サービスを実行している無視します

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=171340&siteId=1