我们是否需要用于 firebase auth 的异步存储来将用户数据存储在 react native 中

Do we need Async Storage for firebase auth to store user data in react native

我对 firebase 身份验证有疑问。用户登录后,我可以做任何事情。但是当我关闭我的应用程序并再次重新打开它时,我需要再次登录我的应用程序。为了避免这种情况再次发生和老化,我使用 Async Storage 来存储令牌和 login: true 属性。但我对此有疑问。我使用 rnfirebase.io 在我的应用程序中设置了我的 firebse。没有异步存储有没有办法做到这一点?..任何人都可以解释一下吗? 谢谢❤️。 (我使用了 react native 和 redux-saga)

如果你在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);