javascript - 与 Firebase 身份验证反应:如何设置持久性?
问题描述
我在登录时遇到错误:
const Login = ({ history }) => {
const handleLogin = useCallback(
async event => {
event.preventDefault();
const { email, password } = event.target.elements;
try {
await app
.auth()
.signInWithEmailAndPassword(email.value, password.value);
app.auth().setPersistence(app.auth.Auth.Persistence.SESSION);
history.push("/feed");
} catch (error) {
alert(error);
}
},
[history]
);
我认为我的 setPersistence 在错误的位置,但我不知道如何解决。我的进口清单:
import React, { useCallback, useContext } from "react";
import { withRouter, Redirect } from "react-router";
import app from "../../firebase";
import { AuthContext } from "../../Auth";
谢谢!
解决方案
您必须在调用 signInWithEmailAndPassword 之前调用 setPersistence。
const Login = ({ history }) => {
const handleLogin = useCallback(
async event => {
event.preventDefault();
const { email, password } = event.target.elements;
try {
await app.auth().setPersistence(app.auth.Auth.Persistence.SESSION);
await app
.auth()
.signInWithEmailAndPassword(email.value, password.value);
history.push("/feed");
} catch (error) {
alert(error);
}
},
[history]
);
推荐阅读
- tcl - 如何在 proc (Tcl) 中使用内置变量
- python - 过滤数据框并将新创建的列添加到原始 df
- sql - SQL RANK 但如果相等则更高?
- html - 我怎样才能改变边界
- python - 无法识别的令牌:Django中的“@”
- javascript - JavaScript/Bootstrap noob - 想练习使用 Bootstrap 4 图表模板 - 在代码中缺少一些简单的东西
- javascript - 如何在反应中更新禁用字段的状态
- java - 如何在 servlet 中仅检索年份,同时从数据库中获取结果集
- git - 自动推送到远程 Github 存储库的脚本,不适用于 crontab?
- r - 如何在R中每次使用不同的参数值多次重复一个函数?