我有一個關于 Firebase 身份驗證的問題。用戶登錄后,我可以做任何事情。但是當我關閉我的應用程式并再次重新打開它時,我需要再次登錄我的應用程式。為了避免這種情況再次發生和老化,我使用 Async Storage 來存盤令牌和 login: true 屬性。但我對此表示懷疑。我使用rnfirebase.io在我的應用程式中設定我的 firebse。有沒有辦法在沒有異步存盤的情況下做到這一點?..誰能解釋一下這個?謝謝??。(我用 redux-saga 反應原生)
uj5u.com熱心網友回復:
如果您在 react-native 中使用 react-redux 中間件,則應使用AsyncStorage作為保存持久狀態的中間件,以減少對firebase的呼叫。
它允許您保存用戶和其他內容的登錄狀態,而無需再次從 firebase 請求和身份驗證(您可以為它設定超時摘錄)。
這是 store.js 的一個例子,它可以使用AsyncStorage作為 redux 的中間件來在本地保存狀態:
import { applyMiddleware, createStore, compose } from "redux";
import { persistStore, persistReducer } from "redux-persist";
import AsyncStorage from "@react-native-async-storage/async-storage";
import thunkMiddleware from "redux-thunk";
import { createLogger } from "redux-logger";
import reducer from "./reducers/"; // lets get the reducers
// create logger in DEV
const enhancers = [
applyMiddleware(
thunkMiddleware,
createLogger({
collapsed: true,
predicate: () => __DEV__,
})
),
];
const composeEnhancers =
(__DEV__ &&
typeof window !== "undefined" &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
compose;
const enhancer = composeEnhancers(...enhancers);
const persistConfig = {
key: "blabla", // key of storage
storage: AsyncStorage,
blacklist: [],
};
const persistedReducer = persistReducer(persistConfig, reducer);
export const store = createStore(persistedReducer, {}, enhancer);
export const persistor = persistStore(store);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/359421.html
標籤:火力基地 反应原生 反应还原 Firebase 身份验证 异步存储
