我正在用Firebase的用户名和密码方法为我的网站编写帐户创建功能.当前的实现不工作,除非我启用匿名用户创建模式,然后只创建匿名用户,这不是我想要的.为什么这段代码没有创建经过身份验证的用户,因为这是Firebase要求代码的实现方式?
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
import { initializeApp } from "firebase/app";
const SignUp = () => {
const firebaseConfig = {
apiKey: "{apiKey}",
authDomain: "{domain}",
projectId: "{projectID}",
storageBucket: "{bucket}",
messagingSenderId: "{id}",
appId: "{id}",
measurementId: "{id}"
};
const app = initializeApp(firebaseConfig);
const userSignUp = ({ email, password }) => {
const auth = getAuth(app);
createUserWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
const user = userCredential.user;
console.log(user);
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
console.log(errorMessage);
});
};
function handleSignUp(e) {
e.preventDefault();
const form = e.target;
const formData = new FormData(form);
const formJson = Object.fromEntries(formData.entries());
console.log(formJson.email + " " + formJson.password)
userSignUp(formJson.email, formJson.password);
}
return(
<>
<h1>Sign Up</h1>
<form method="post" onSubmit={handleSignUp}>
<label>
Email: <input type="email" name="email"/>
</label>
<label>
Password: <input type="password" name="password"/>
</label>
<button type="submit">Submit</button>
</form>
</>
);
}
export default SignUp
这样做的结果就是这个错误:
Jsx:20 POST https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaSyA4EnTbw40XnyYjHRHYjvWAxJ42STDF3cA 400(Bad Request)
这个控制台消息:
Firebase:错误(auth/admin—restricted—operation).