Object was not initialized (NSObject) – B4X NSObject

NSObject

Dopo l'aggiornamento di B4i e del Build Server il vecchio accesso FIRInstanceID può restituire un NativeObject non inizializzato. Il percorso documentato usa FIRMessaging, legge il campo messaging e poi FCMToken, controllando IsInitialized prima di convertire il token.

Cosa significa questo errore?

Dopo l'aggiornamento di B4i e del Build Server il vecchio accesso FIRInstanceID può restituire un NativeObject non inizializzato. Il percorso documentato usa FIRMessaging, legge il campo messaging e poi FCMToken, controllando IsInitialized prima di convertire il token.

Messaggio originale

Object was not initialized (NSObject)

Contesto e parole chiave

Alias

  • FCMToken B4i
  • FIRInstanceID token error

Messaggi alternativi

  • Errore GetToken dopo aggiornamento B4i e B4iBuildServer

Prodotti

  • B4i
  • Firebase Cloud Messaging

Piattaforme

  • iOS

Parole chiave

  • b4i fcm token firmessaging
  • b4i object was not initialized nsobject
  • firinstanceid b4i error

Cause possibili

API FCM precedente non più inizializzata come atteso

Il codice usa FIRInstanceID e il metodo token della vecchia API. Dopo l'aggiornamento il valore ottenuto non è un oggetto inizializzato; la API corrente espone il token tramite FIRMessaging.messaging.FCMToken.

possibile

Diagnosi

Classe NativeObject e campo FCM usati da GetToken

Verificare se GetToken inizializza FIRInstanceID e chiama token, quindi controllare quale oggetto risulta non inizializzato nel log B4i.

Come leggere il risultato. La presenza del vecchio percorso FIRInstanceID identifica la causa e distingue il problema dall'assenza di un token ancora emesso.

Risoluzione

Leggere FCMToken da FIRMessaging

Difficoltà: mediaRischio: basso

Sostituire il vecchio accesso FIRInstanceID con NativeObject FIRMessaging e restituire una stringa vuota quando il token non è ancora disponibile.

  1. Inizializzare FIRMessaging e ottenere il campo messaging.
  2. Leggere FCMToken in un NativeObject.
  3. Controllare IsInitialized prima di chiamare AsString e gestire il token assente come stringa vuota.
B4i
FIRMessaging = FIRMessaging.Initialize("FIRMessaging").GetField("messaging")
B4i
Dim token As NativeObject = FIRMessaging.GetField("FCMToken")

Domande frequenti

Cosa restituisco se FCMToken non è ancora disponibile?

Il codice documentato controlla IsInitialized e restituisce una stringa vuota; il token può essere gestito quando Firebase lo rende disponibile.

Approfondimenti

Schede correlate