![](/img/trans.png)
[英]FirebaseError: Firebase: Error (auth/invalid-api-key) on deployed site
[英]FirebaseError: Firebase: Error (auth/admin-restricted-operation)
我正在开发一个反应应用程序。 我正在尝试使用电子邮件和密码 (firebase) 创建一个新用户,但它一直显示此消息
FirebaseError: Firebase: Error (auth/admin-restricted-operation).
at createErrorInternal (assert.ts:136:1)
at _fail (assert.ts:65:1)
at _performFetchWithErrorHandling (index.ts:177:1)
at async _performSignInRequest (index.ts:195:1)
at async createUserWithEmailAndPassword (email_and_password.ts:230:1)
at async handleAdd (New.jsx:69:1)
下面是我的 New.jsx 代码
import "./new.scss"
import Navbar from "../../components/navbar/Navbar"
import Sidebar from "../../components/sidebar/Sidebar"
import DriveFolderUploadOutlinedIcon from '@mui/icons-material/DriveFolderUploadOutlined';
import { useEffect, useState } from "react";
import {addDoc,collection,doc,serverTimestamp,setDoc,} from "firebase/firestore";
import { createUserWithEmailAndPassword } from "firebase/auth";
import { auth, db, storage } from "../../firebase";
import { ref, uploadBytesResumable, getDownloadURL } from "firebase/storage";
import { useNavigate } from "react-router-dom";
const New = ({ inputs, title }) => {
const [file, setFile] = useState("");
const [data, setData] = useState({});
const [per, setPerc] = useState(null);
const navigate = useNavigate()
useEffect(() => {
const uploadFile = () => {
const name = new Date().getTime() + file.name;
console.log(name);
const storageRef = ref(storage, file.name);
const uploadTask = uploadBytesResumable(storageRef, file);
uploadTask.on(
"state_changed",
(snapshot) => {
const progress =
(snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.log("Upload is " + progress + "% done");
setPerc(progress);
switch (snapshot.state) {
case "paused":
console.log("Upload is paused");
break;
case "running":
console.log("Upload is running");
break;
default:
break;
}
},
(error) => {
console.log(error);
},
() => {
getDownloadURL(uploadTask.snapshot.ref).then((downloadURL) => {
setData((prev) => ({ ...prev, img: downloadURL }));
});
}
);
};
file && uploadFile();
}, [file]);
console.log(data);
const handleInput = (e) => {
const id = e.target.id;
const value = e.target.value;
setData({ ...data, [id]: value });
};
const handleAdd = async (e) => {
e.preventDefault();
try {
const res = await createUserWithEmailAndPassword(
auth,
data.email,
data.password
);
await setDoc(doc(db, "owners", res.owner.uid), {
...data,
timeStamp: serverTimestamp(),
});
navigate(-1)
} catch (err) {
console.log(err);
}
};
return (
<div className="new">
<Sidebar />
<div className="newContainer">
<Navbar />
<div className="top">
<h1>{title}</h1>
</div>
<div className="bottom">
<div className="left">
<img
src={
file
? URL.createObjectURL(file)
: "https://icon-library.com/images/no-image-icon/no-image-icon-0.jpg"
}
alt=""
/>
</div>
<div className="right">
<form onSubmit={handleAdd}>
<div className="formInput">
<label htmlFor="file">
Image: <DriveFolderUploadOutlinedIcon className="icon" />
</label>
<input
type="file"
id="file"
onChange={(e) => setFile(e.target.files[0])}
style={{ display: "none" }}
/>
</div>
{inputs.map((input) => (
<div className="formInput" key={input.id}>
<label>{input.label}</label>
<input
id={input.id}
type={input.type}
placeholder={input.placeholder}
onChange={handleInput}
required
/>
</div>
))}
<button disabled={per !== null && per < 100} type="submit">
Submit
</button>
</form>
</div>
</div>
</div>
</div>
);
};
export default New;
这是我的 firebase.js
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
import { getStorage } from "firebase/storage";
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGE,
appId: process.env.REACT_APP_ID,
measurementId: process.env.REACT_APP_MEASUREMENT_ID,
};
//Initialize Firebase
const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);
export const auth = getAuth();
export const storage = getStorage(app);
createUserWithEmailAndPassword
时,它开始不起作用有谁知道如何解决这个问题?
它将存储并创建新用户到 firebase,不会显示错误消息
问题出在您的 firebase.js 文件中:
export const auth = getAuth();
在括号中添加应用程序。
export const auth = getAuth(app);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.