title: Firebase Token Id getting null in android
body: <p>I am trying to get device token id but it getting null in android.same code is running on another app but in that app it gives me device token but in this application it gives me null
  please help me to resolve this i didnt know why this happened</p>
  
  <p>Here is my code for getting device token id</p>
  
  <pre><code>public class MyActivity extends AppCompatActivity {
      private Button btn_login, btn_login_forgot_password;
      private SharedPreferencesDatabase sharedPreferencesDatabase;
      private ProgressBar pb_login;
      private CoordinatorLayout coordinatorLayout_login;
      private EditText et_username_login, et_password_login;
      private String[] permissions = new String[]{
              Manifest.permission.INTERNET,
              Manifest.permission.READ_EXTERNAL_STORAGE,
              Manifest.permission.WRITE_EXTERNAL_STORAGE};
      AccountAdapter accountAdapter;
      public static ArrayList&lt;ItemAccount&gt; accounts = new ArrayList&lt;&gt;();
      private UnderlineTextView tv_not_member;
      private BroadcastReceiver mRegistrationBroadcastReceiver;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_mindwerx);
          sharedPreferencesDatabase = new SharedPreferencesDatabase(MINDWERX.this);
          sharedPreferencesDatabase.createDatabase();
          FirebaseApp.initializeApp(this);
          FirebaseMessaging.getInstance().setAutoInitEnabled(true);
  
          final String token = firebaseRegId();
  }
  </code></pre>
  
  <p>this is my firebaseinstanceid service</p>
  
  <pre><code>public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
      private static final String TAG = MyFirebaseInstanceIDService.class.getSimpleName();
  
      @Override
      public void onTokenRefresh() {
          super.onTokenRefresh();
          String refreshedToken = FirebaseInstanceId.getInstance().getToken();
  
          storeRegIdInPref(refreshedToken);
  
          sendRegistrationToServer(refreshedToken);
  
          Intent registrationComplete = new Intent(Config.REGISTRATION_COMPLETE);
          registrationComplete.putExtra("token", refreshedToken);
          LocalBroadcastManager.getInstance(this).sendBroadcast(registrationComplete);
      }
  
      private void sendRegistrationToServer(final String token) {
          // sending gcm token to server
          Log.e(TAG, "sendRegistrationToServer: " + token);
      }
  
      private void storeRegIdInPref(String token) {
          SharedPreferences pref = getApplicationContext().getSharedPreferences(Config.SHARED_PREFERENCE_DB_NAME, 0);
          SharedPreferences.Editor editor = pref.edit();
          editor.putString("regId", token);
          editor.commit();
      }
  }
  </code></pre>
  
  <p>this is my FirebaseMessagingService</p>
  
  <pre><code>public class MyFirebaseMessagingService extends FirebaseMessagingService {
  
      private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();
  
      private NotificationUtils notificationUtils;
  
      @Override
      public void onMessageReceived(RemoteMessage remoteMessage) {
          Log.e(TAG, "From: " + remoteMessage.getFrom());
  
          if (remoteMessage == null)
              return;
  
          // Check if message contains a notification payload.
          if (remoteMessage.getNotification() != null) {
              Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody());
              handleNotification(remoteMessage.getNotification().getBody());
          }
  
          // Check if message contains a data payload.
          if (remoteMessage.getData().size() &gt; 0) {
              Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
  
              try {
                  JSONObject json = new JSONObject(remoteMessage.getData().toString());
                  handleDataMessage(json);
              } catch (Exception e) {
                  Log.e(TAG, "Exception: " + e.getMessage());
              }
          }
      }
  
      private void handleNotification(String message) {
          if (!NotificationUtils.isAppIsInBackground(getApplicationContext())) {
              // app is in foreground, broadcast the push message
              Intent pushNotification = new Intent(Config.PUSH_NOTIFICATION);
              pushNotification.putExtra("message", message);
              LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
  
              // play notification sound
              NotificationUtils notificationUtils = new NotificationUtils(getApplicationContext());
              notificationUtils.playNotificationSound();
          } else {
  
  
              // If the app is in background, firebase itself handles the notification
          }
      }
  
  
      private void handleDataMessage(JSONObject json) {
          Log.e(TAG, "push json: " + json.toString());
  
          try {
              JSONObject data = json.getJSONObject("data");
  
              String title = data.getString("title");
              String message = data.getString("message");
              boolean isBackground = data.getBoolean("is_background");
              String imageUrl = data.getString("image");
              String timestamp = data.getString("timestamp");
              JSONObject payload = data.getJSONObject("payload");
  
              Log.e(TAG, "title: " + title);
              Log.e(TAG, "message: " + message);
              Log.e(TAG, "isBackground: " + isBackground);
              Log.e(TAG, "payload: " + payload.toString());
              Log.e(TAG, "imageUrl: " + imageUrl);
              Log.e(TAG, "timestamp: " + timestamp);
  
  
              if (!NotificationUtils.isAppIsInBackground(getApplicationContext())) {
                  // app is in foreground, broadcast the push message
                  Intent pushNotification = new Intent(Config.PUSH_NOTIFICATION);
                  pushNotification.putExtra("message", message);
                  LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
  
                  // play notification sound
                  NotificationUtils notificationUtils = new NotificationUtils(getApplicationContext());
                  notificationUtils.playNotificationSound();
              } else {
                  // app is in background, show the notification in notification tray
                  Intent resultIntent = new Intent(getApplicationContext(), DrawerActivity.class);
                  resultIntent.putExtra("message", message);
  
                  // check for image attachment
                  if (TextUtils.isEmpty(imageUrl)) {
                      showNotificationMessage(getApplicationContext(), title, message, timestamp, resultIntent);
                  } else {
                      // image is present, show notification with image
                      showNotificationMessageWithBigImage(getApplicationContext(), title, message, timestamp, resultIntent, imageUrl);
                  }
              }
          } catch (JSONException e) {
              Log.e(TAG, "Json Exception: " + e.getMessage());
          } catch (Exception e) {
              Log.e(TAG, "Exception: " + e.getMessage());
          }
      }
  
      /**
       * Showing notification with text only
       */
      private void showNotificationMessage(Context context, String title, String message, String timeStamp, Intent intent) {
          notificationUtils = new NotificationUtils(context);
          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
          notificationUtils.showNotificationMessage(title, message, timeStamp, intent);
      }
  
      /**
       * Showing notification with text and image
       */
      private void showNotificationMessageWithBigImage(Context context, String title, String message, String timeStamp, Intent intent, String imageUrl) {
          notificationUtils = new NotificationUtils(context);
          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
          notificationUtils.showNotificationMessage(title, message, timeStamp, intent, imageUrl);
      }
  
      @Override
      public void onNewToken(String s) {
          super.onNewToken(s);
          Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
  
      }
  }
  </code></pre>