code: def _update_user(self):
      if not os.path.exists(self.token_file):
          # refresh tokens don't expire, hence we can
          # use them forever once obtained
          # or (time.time() - os.path.getmtime(api_key)) > HOUR:
          if self.use_email_auth:
              self.sign_in_with_email()
              self.expired = False
          else:
              self.expired = True
      else:
          # If json file fails to load, try again
          counter = 0
          user = None
          while True:
              if user is not None or counter >= MAX_NUM_RETRIES:
                  break
              try:
                  with open(self.token_file) as f:
                      user = json.loads(f.read())
              except BaseException as e:
                  check_for_kb_interrupt()
                  self.logger.info(e)
                  time.sleep(SLEEP_TIME)
                  counter += 1
          if user is None:
              return
  
          self.user = user
          if time.time() > self.user.get("expiration", 0):
              counter = 0
              while counter < MAX_NUM_RETRIES:
                  try:
                      self.refresh_token(
                          user["email"], user["refreshToken"]
                      )
                      break
                  except BaseException as e:
                      check_for_kb_interrupt()
                      self.logger.info(e)
                      time.sleep(SLEEP_TIME)
                      counter += 1
          else:
              self.expired = False
  
imports: import os
  import getpass
  import time
  import json
  import shutil
  import atexit
  import tempfile
  import requests
  import re
  import uuid
  from builtins import input
  import google.auth.transport.requests
  import google.oauth2.id_token
  from studio.util.util import rand_string, check_for_kb_interrupt
  from studio import pyrebase
  from studio.util import logs
label_desc: Use image node_id 2 for calling the FirebaseAuth obj's underlying member method code with example usage: obj._update_user() without return types