<aside> 🌿 画像はv8の時の書き方 画像の下にv9の書き方を記述しているので、実際に記述する時はそちらを参考にすること!

▼ドキュメント

Add data to Cloud Firestore | Firebase

</aside>

Firestoreのadd/setメソッドとは

addメソッド

https://www.youtube.com/watch?v=Dq0uWRquuf4&list=PLX8Rsrpnn3IWavNOj3n4Vypzwb3q1RXhr&index=14

https://www.youtube.com/watch?v=Dq0uWRquuf4&list=PLX8Rsrpnn3IWavNOj3n4Vypzwb3q1RXhr&index=14

▼v9の書き方

import { collection, addDoc } from "firebase/firestore";

const productsRef = collection(db, "products");
const data = {
	description: description,
	name: name,
	price: parseInt(price, 10), // 渡される値が文字列なので、parseIntメソッドで数値化(10=10進数のこと)
}

return addDoc(productsRef, data)
		.then(() => {
				dispatch(push("/"));
		}).catch((error) => {
				throw new Error(error)
		});

setメソッド

https://www.youtube.com/watch?v=Dq0uWRquuf4&list=PLX8Rsrpnn3IWavNOj3n4Vypzwb3q1RXhr&index=14

https://www.youtube.com/watch?v=Dq0uWRquuf4&list=PLX8Rsrpnn3IWavNOj3n4Vypzwb3q1RXhr&index=14

▼v9の書き方

import { collection, doc, setDoc } from "firebase/firestore";

const productsRef = collection(db, "products");
const data = {
	description: description,
	name: name,
	price: parseInt(price, 10),
}

// IDを自動採番(addメソッドと同じ)
return setDoc(doc(productsRef), data);

// 事前に自動採番されたIDを取得できる
const ref = doc(productsRef); // 新しくデータを作成(自動採番)
const id = ref.id; // 自動採番したidを取得、格納
data.id = id; // 上記const data にidを追加
return setDoc(doc(db, "products", id), data);

// 変更部分のみmergeできる。第二引数({merge: true})をセットしないと、全て上書きになる
setDoc(doc(db, "products", id), data, {merge: true});