我有一个使用Firebase的登录系统,如果有人输入正确的信息,我想动态添加路线,我希望它添加主路线和添加路线.
var userToken = 'firebase:authUser:AIzaSyDfC9LqfL1rbClhfCOD04BKC9ZIn7UAZ_g:[DEFAULT]';
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Login} />
<Route path="signup" component={Signup} />
{ localStorage.getItem(userToken) ? (
<Route path="main" component={Main} />
) : (<Redirect from="main" to="/" />)
}
{ localStorage.getItem(userToken) ? (
<Route path="add" component={Add} />
) : null
}
<Route path="main" component={Main} />
<Route path="*" component={NotFound} />
</Router>
, document.getElementById('container'));
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但是当有人输入正确的信息时,它有一个缺陷,他们必须重新加载页面并再次输入信息才能登录.
有成功的身份验证后,他们不必重新加载页面吗?
javascript firebase reactjs react-router firebase-authentication
如何在下面的示例中获取循环外的循环值仅打印最后一个值,例如,如果我想打印循环结果。
var result;
for (var i=0; i < 10; i++) {
result = i;
}
console.log(result);
Run Code Online (Sandbox Code Playgroud)
现在如何在控制台中获取循环的迭代值(1 到 10),因为现在我将只打印最后一个值为 10 的值。
我一直在Node JS代码中使用Firebase Admin SDK从服务器端对用户进行身份验证。
Admin SDK提供了一种admin.auth().createUser()创建新用户的方法。
admin.auth().createUser({
email,
password,
displayName: name
})
.then(function(user) {
console.log("Successfully created new user:", user.uid)
return res.send(user)
})
.catch(function(err) {
console.log("Error creating new user:", err)
return res.send(err)
})
Run Code Online (Sandbox Code Playgroud)
但是现在如何像auth.signInWithEmailAndPassword(email, pass)Firebase Client SDK中的方法那样使用户登录。
firebase admin SDK上有一种方法可以通过Email获取用户信息admin.auth().getUserByEmail(email)。此方法返回所有用户信息,包括密码,但该密码被散列。因此,现在有任何变通办法可以从Server获得适当的身份验证用户。