実現したいこと
Firestoreに、データを1つだけ登録したい
発生している問題・分からないこと
Next.jsとTypeScriptを用い、Firestoreにデータを登録しようとしています。ですが、1つデータを登録しようとすると同じデータが2つコレクションの部分に登録されてしまいます。この原因と対処法を教えてほしいです。
該当のソースコード
TypeScript(page.tsx)
1import { db } from "@/app/firebase";2 3export default function Home() {4 5 async function addData() {6 try {7 const docRef = await addDoc(collection(db, "users"), {8 first: "Ada",9 second:"Adada"10 });11 12 console.log("Document written with ID: ", docRef.id);13 } catch (e) {14 console.error("Error adding document: ", e);15 }16 }17 18 addData()19}
TypeScript(firebase.tsx)
1import { initializeApp } from "firebase/app";2import { getFirestore} from 'firebase/firestore'3import { getAuth} from 'firebase/auth';4 5const firebaseConfig = {6 //apiKey7 //authDomain8 //projectId9 //storageBucket10 //messagingSenderId11 //appId12 //measurementId13};14 15const firebaseApp = initializeApp(firebaseConfig);16 17const auth = getAuth(firebaseApp);18const db = getFirestore(firebaseApp)19 20 21export { firebaseApp, auth, db };
試したこと・調べたこと
上記の詳細・結果
addData()とある部分を以下のように書き変えてみても同様の結果になりました。
useEffect(() => {
if(auth.currentUser != null) {
addData()
}
},[])
補足
next.jsのバージョンは14.1.4
typescriptのバージョンは5.4.3でした
0 コメント