fix(mobil-webb): krascha inte pa webben (Firebase-persistens)
getReactNativePersistence/AsyncStorage finns inte i webb-bygget (react-native- web) och gav 'Cannot read properties of undefined (reading bind)' vid start. Pa webben anvands nu Firebases standard-webblagring (getAuth), pa native AsyncStorage som forr. Gor att webbversionen kan koras for felsokning.
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
||||
} from "firebase/auth";
|
||||
import * as fbAuth from "firebase/auth";
|
||||
import AsyncStorage from "@react-native-async-storage/async-storage";
|
||||
import { Platform } from "react-native";
|
||||
import type { AuthProvider, AuthUser, Unsubscribe } from "./types";
|
||||
|
||||
/**
|
||||
@@ -37,10 +38,16 @@ const getReactNativePersistence = (
|
||||
fbAuth as unknown as { getReactNativePersistence: (storage: unknown) => Persistence }
|
||||
).getReactNativePersistence;
|
||||
|
||||
// AsyncStorage-persistens så inloggningen överlever app-omstart.
|
||||
// Persistens så inloggningen överlever omstart. På webben (react-native-web)
|
||||
// finns INTE getReactNativePersistence/AsyncStorage – att anropa dem kraschar
|
||||
// hela appen vid start ("Cannot read properties of undefined (reading 'bind')").
|
||||
// Där använder vi Firebases standard-webblagring (getAuth), på native AsyncStorage.
|
||||
let auth: Auth;
|
||||
try {
|
||||
auth = initializeAuth(app, { persistence: getReactNativePersistence(AsyncStorage) });
|
||||
auth =
|
||||
Platform.OS === "web"
|
||||
? getAuth(app)
|
||||
: initializeAuth(app, { persistence: getReactNativePersistence(AsyncStorage) });
|
||||
} catch {
|
||||
// initializeAuth kastar om den redan körts (Fast Refresh) – återanvänd instansen.
|
||||
auth = getAuth(app);
|
||||
|
||||
Reference in New Issue
Block a user