我在我的项目中使用 Firebase 身份验证,一切正常,但我的应用程序中的多个对象有一个上下文菜单,它会打开一个新选项卡(在同一应用程序内)。
当用户在此会话中第一次打开新选项卡时,第一个/初始选项卡将丢失其身份验证状态,因此所有订阅者都会取消订阅(因为缺少权限),并且用户会在该选项卡中看到登录页面。
我的登录功能(和持久性设置)如下所示。
const login = async (values: { email: string; password: string }) => {
try {
// some unrelated code above
const { email, password } = values;
await setPersistence(auth, browserLocalPersistence);
await signInWithEmailAndPassword(auth, email, password);
} catch (error) {
console.error(error);
} finally {
// some more unrelated code below
}
};
Run Code Online (Sandbox Code Playgroud)
当用户继续在较新的选项卡之一中使用该应用程序时,例如从那里触发一个新选项卡,身份验证状态就可以正常工作。它只发生在第一个(初始)选项卡上。
我的登录过程是否做错了什么,或者这是 firebase 的常见问题?我在网上搜索,不幸的是找不到有同样问题的人。
提前致谢。
更新:
我移动了
await setPersistence(auth, browserLocalPersistence);
Run Code Online (Sandbox Code Playgroud)
在onAuthStateChanged侦听器中,看起来它解决了我的问题(目前)。
更新(2023 年 4 月 25 日):
不幸的是它仍然没有按预期工作。有没有任何解决方案或提示我做错了什么?我真的很感激这里的一些帮助。
此外,此行为仅在使用 打开新选项卡时出现window.open('/foo', '_blank')。当我通过复制和粘贴手动打开所需的目标 …
我正在尝试使用 EditorJS 的编辑器。一切工作正常,除了当我第一次加载页面时,它会在开始时初始化两个编辑器,并在每次重新加载页面时不断附加新编辑器。但它们都在<div id='editorjs' />div内部。我有什么遗漏的吗?
// react etc. imports
import EditorJS from '@editorjs/editorjs'
const EditorComponent = (props) => {
const [input, setInput] = useState({})
const currentuser = useSelector((state) => state.currentuser)
const editor = new EditorJS({
holderId: 'editorjs',
autofocus: true,
})
const postNews = () => {
// POSTING SUTFF
}
return (
<Grid>
<Grid templateRows='auto min-content' gap={6}>
<div id='editorjs' />
<Button onClick={postNews}>Post news</Button>
</Grid>
</Grid>
)
}
Run Code Online (Sandbox Code Playgroud)
这是 dom 的屏幕截图,其中加载页面后立即添加了两个编辑器。
我有一个关于双向链表的问题。我在互联网上找不到对我的问题的任何合适的解释。也许我只是愚蠢到找不到正确的问题..
这是链表初始化时的样子:
[Head][Tail]
Run Code Online (Sandbox Code Playgroud)
但是当我将值添加到列表时实际的头和尾节点是否仍然存在,或者当我添加值时它们会被覆盖吗?
它应该是这样的:
[Head][Value1][Value2][Value3][Value4][Tail]
Run Code Online (Sandbox Code Playgroud)
或者像这样:
[Value1][Value2][Value3][Value4][Value5]
Run Code Online (Sandbox Code Playgroud) 当我想在我的React Native项目中添加构造函数时,我总是以意外的令牌结尾,期望为“;”。(6:28)。
我已经尝试在每个可能的位置添加分号,但无法弄清楚实际出了什么问题,因为我是TypeScript和React Native的新手。
export default function App() {
constructor(props: Props) {
super(props);
this.state = {
welcomeText: 'Hey this is not working'
};
}
return (
<View style={styles.container}>
<View style={styles.subContainer}>
</View>
<View style={styles.subContainer}>
<Text style={text.header}>Welcome</Text>
<Text style={text.onBoardingContent}>
</Text>
</View>
</View>
);
}
...
Run Code Online (Sandbox Code Playgroud)
SyntaxError: /Users/Puerschel/Desktop/Whale/Project/Whale/App.tsx: Unexpected token, expected ";" (6:28)
4 | export default function App() {
5 |
> 6 | constructor(props: Props) {
| ^
7 | super(props);
8 |
9 | this.state = {
Failed building JavaScript …Run Code Online (Sandbox Code Playgroud) typescript ×2
algorithm ×1
editorjs ×1
firebase ×1
java ×1
javascript ×1
list ×1
react-native ×1
reactjs ×1