Firestore Referenceデータ型解説
Firebase Firestoreの「Reference」データ型について
Firebase Firestoreにおける「Reference」データ型は、ドキュメントやコレクションへの参照を保持するために使用されます。これにより、複数のドキュメント間で関連性や階層構造を定義することが可能になります。
JavaScriptでの使用例
// コレクションへの参照を取得
const db = firebase.firestore();
const citiesRef = db.collection('cities');
// ドキュメントへの参照を取得
const cityRef = citiesRef.doc('SF');
// ドキュメントのデータを取得
cityRef.get()
.then((doc) => {
if (doc.exists) {
console.log('City:', doc.data());
} else {
console.log('No such document!');
}
})
.catch((error) => {
console.error('Error getting document:', error);
});
Node.jsでの使用例
const admin = require('firebase-admin');
admin.initializeApp({
// Firebaseプロジェクトの設定
});
const db = admin.firestore();
const citiesRef = db.collection('cities');
// ドキュメントへの参照を取得
const cityRef = citiesRef.doc('SF');
// ドキュメントのデータを取得
cityRef.get()
.then((doc) => {
if (doc.exists) {
console.log('City:', doc.data());
} else {
console.log('No such document!');
}
})
.catch((error) => {
console.error('Error getting document:', error);
});
「Reference」データ型の利点
- クエリの実行
参照を使ってクエリを実行し、特定の条件を満たすドキュメントを取得できる。 - 効率的なデータアクセス
参照を使用してドキュメントを直接取得できる。 - 階層構造の構築
ドキュメントを階層的に編成できる。 - 関連性の定義
複数のドキュメント間で関連性を設定できる。
// コレクションへの参照を取得
const db = firebase.firestore();
const citiesRef = db.collection('cities');
// ドキュメントへの参照を取得
const cityRef = citiesRef.doc('SF');
// ドキュメントのデータを取得
cityRef.get()
.then((doc) => {
if (doc.exists) {
console.log('City:', doc.data());
} else {
console.log('No such document!');
}
})
.catch((error) => {
console.error('Error getting document:', error);
});
const admin = require('firebase-admin');
admin.initializeApp({
// Firebaseプロジェクトの設定
});
const db = admin.firestore();
const citiesRef = db.collection('cities');
// ドキュメントへの参照を取得
const cityRef = citiesRef.doc('SF');
// ドキュメントのデータを取得
cityRef.get()
.then((doc) => {
if (doc.exists) {
console.log('City:', doc.data());
} else {
console.log('No such document!');
}
})
.catch((error) => {
console.error('Error getting document:', error);
});
コード解説
- コレクションへの参照を取得
db.collection('cities')
で、cities
という名前のコレクションへの参照を取得します。 - ドキュメントへの参照を取得
citiesRef.doc('SF')
で、cities
コレクション内のSF
という名前のドキュメントへの参照を取得します。 - ドキュメントのデータを取得
cityRef.get()
で、SF
ドキュメントのデータを非同期的に取得します。 - データの処理
取得したドキュメントのデータを処理します。doc.exists
でドキュメントが存在するかを確認し、存在する場合はdoc.data()
でデータを取得します。
ドキュメント IDを利用する
直接ドキュメント IDを使用することで、ドキュメントにアクセスすることができます。
javascript node.js firebase