Recientemente actualicé a Expo SDK 43.
Ahora estoy recibiendo este error:

La línea de código que lo arroja es:
if (!RCTAsyncStorage.multiMerge) {Estoy en la última versión de AsyncStorage.
Esto parece deberse a mi uso de firebase-js-sdk.
Desafortunadamente, como se trata de un proyecto iOS/Android/Web, es necesario.
Cuando me burlo de mis exportaciones de Firebase, todo funciona:
const auth = () => {}; const analytics = () => {}; export default { auth, analytics };Pero cuando uso las funciones firebase-js-sdk, recibo el mensaje anterior.
Este código provoca un error (cualquiera que sea la versión de autenticación que use)
let auth = initializeAuth(config, { persistence: getReactNativePersistence(AsyncStorage), }); //let auth = getAuth(config); let analytics = getAnalytics(config); export default { auth, analytics };Puede evitar ese error específico agregando un encadenamiento opcional (el signo de interrogación '?'):
if (!RCTAsyncStorage?.multiMerge) { Hará un cortocircuito a undefined (haciendo así que if false ) en lugar de arrojar un error al intentar verificar el objeto nulo.
En cuanto a por qué RCTAsyncStorage sería nulo, tendría que verificar dónde lo obtuvo/declaró por primera vez y rastrear hasta el punto en que no se cargó, tal vez esté usando algo en conflicto de firebase-js-sdk.
Además, multiMerge podría no ser compatible siempre como se menciona en los documentos :
fusión múltiple
[...] NOTA : Esto no es compatible con todas las implementaciones nativas.