คู่มือเริ่มต้นฉบับย่อนี้จะแสดงวิธีตั้งค่า Cloud Firestore เพิ่มข้อมูล จากนั้นใช้ การดำเนินการหลักหรือการดำเนินการไปป์ไลน์ เพื่อค้นหาข้อมูลที่คุณ เพิ่งเพิ่มใน Firebase คอนโซลโดยใช้ไลบรารีของไคลเอ็นต์เซิร์ฟเวอร์สำหรับ Java, Node.js และ Python
ใช้ไลบรารีของไคลเอ็นต์เหล่านี้เพื่อตั้งค่าสภาพแวดล้อมเซิร์ฟเวอร์ที่มีสิทธิ์เข้าถึงฐานข้อมูลของคุณได้อย่างเต็มที่
สร้างฐานข้อมูล Cloud Firestore
หากยังไม่ได้สร้าง ให้สร้างโปรเจ็กต์ Firebase โดยคลิก Firebaseคอนโซล จากนั้นทำตามวิธีการบนหน้าจอเพื่อสร้างโปรเจ็กต์ Firebase หรือ เพิ่มบริการ Firebase ลงในโปรเจ็กต์Google Cloud ที่มีอยู่
เปิดโปรเจ็กต์ในคอนโซล Firebase ในแผงด้านซ้าย ให้ขยาย Build แล้วเลือก ฐานข้อมูล Firestore
คลิกสร้างฐานข้อมูล
เลือกEnterprise สำหรับโหมดฐานข้อมูล
เลือกFirestore ในโหมดดั้งเดิม สำหรับโหมดการดำเนินการ ซึ่งรองรับการดำเนินการหลักและการดำเนินการ Pipeline
เลือกตำแหน่งสำหรับฐานข้อมูล
เลือกโหมดเริ่มต้นสำหรับ Cloud Firestore Security Rules
- โหมดทดสอบ
เหมาะสำหรับการเริ่มต้นใช้งานไลบรารีของไคลเอ็นต์อุปกรณ์เคลื่อนที่และเว็บ แต่จะอนุญาตให้ทุกคนอ่านและเขียนทับข้อมูลของคุณได้ หลังจากทดสอบแล้ว โปรด ตรวจสอบส่วน รักษาความปลอดภัยให้ข้อมูล
หากต้องการเริ่มต้นใช้งาน SDK เว็บ, แพลตฟอร์ม Apple หรือ Android ให้เลือกโหมดทดสอบ
- โหมดโปรดักชัน
ปฏิเสธการอ่านและการเขียนทั้งหมดจากไคลเอ็นต์อุปกรณ์เคลื่อนที่และเว็บ เซิร์ฟเวอร์แอปพลิเคชันที่ตรวจสอบสิทธิ์แล้ว (Node.js, Python, Java) จะยังคงเข้าถึงฐานข้อมูลของคุณได้
ชุดกฎความปลอดภัยของ Cloud Firestore เริ่มต้นจะมีผลกับฐานข้อมูล Cloud Firestore เริ่มต้นCloud Firestore Security RulesCloud Firestore หากสร้างฐานข้อมูลหลายรายการสำหรับโปรเจ็กต์ คุณสามารถติดตั้งใช้งาน Cloud Firestore Security Rules สำหรับฐานข้อมูลแต่ละรายการได้
คลิกสร้าง
เมื่อเปิดใช้ Cloud Firestore ระบบจะเปิดใช้ API ใน Cloud API Manager ด้วย
ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
เพิ่มทรัพยากร Dependency และไลบรารีของไคลเอ็นต์ที่จำเป็นลงในแอป
Node.js
-
เพิ่ม Firebase Admin SDK ลงในแอปโดยทำดังนี้
npm install firebase-admin --save
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
Python
- เพิ่ม Firebase Admin SDK ลงในแอป Python โดยทำดังนี้
pip install --upgrade firebase-admin
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
Java
- เพิ่ม Firebase Admin SDK ลงในแอปโดยทำดังนี้
-
ใช้ Gradle:
implementation 'com.google.firebase:firebase-admin:9.8.0'
-
ใช้ Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.8.0</version> </dependency>
-
ใช้ Gradle:
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
เริ่มต้น Cloud Firestore
เริ่มต้นอินสแตนซ์ของ Cloud Firestore โดยทำดังนี้
Node.js
ระบบจะเริ่มต้น Cloud Firestore SDK ในรูปแบบต่างๆ ขึ้นอยู่กับ สภาพแวดล้อมของคุณ วิธีการที่ใช้โดยทั่วไปมีดังนี้ ดูข้อมูลอ้างอิงฉบับสมบูรณ์ได้ที่ หัวข้อ เริ่มต้น Admin SDK-
เริ่มต้นใน Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
เริ่มต้นใน Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
เริ่มต้นในเซิร์ฟเวอร์ของคุณเอง
หากต้องการใช้ Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณเอง (หรือสภาพแวดล้อม Node.js อื่นๆ) ให้ใช้บัญชีบริการ ไปที่IAM และผู้ดูแลระบบ > บัญชีบริการ ในคอนโซล Google Cloud สร้างคีย์ส่วนตัวใหม่และบันทึกไฟล์ JSON จากนั้นใช้ไฟล์เพื่อเริ่มต้น SDK โดยทำดังนี้
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Python
ระบบจะเริ่มต้น Cloud Firestore SDK ในรูปแบบต่างๆ ขึ้นอยู่กับ สภาพแวดล้อมของคุณ วิธีการที่ใช้โดยทั่วไปมีดังนี้ ดูข้อมูลอ้างอิงฉบับสมบูรณ์ได้ที่ หัวข้อ เริ่มต้น Admin SDKimport firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
นอกจากนี้ คุณยังใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันที่มีอยู่เพื่อเริ่มต้น SDK ได้ด้วย
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
หากต้องการใช้ Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณเอง ให้ใช้ บัญชีบริการ
ไปที่ IAM และผู้ดูแลระบบ > บัญชีบริการ ในคอนโซล Google Cloud สร้างคีย์ส่วนตัวใหม่และบันทึกไฟล์ JSON จากนั้นใช้ไฟล์เพื่อเริ่มต้น SDK โดยทำดังนี้
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Java
ระบบจะเริ่มต้น Cloud Firestore SDK ในรูปแบบต่างๆ ขึ้นอยู่กับ สภาพแวดล้อมของคุณ วิธีการที่ใช้โดยทั่วไปมีดังนี้ ดูข้อมูลอ้างอิงฉบับสมบูรณ์ได้ที่ หัวข้อ เริ่มต้น Admin SDKimport com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
หากต้องการใช้ Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณเอง ให้ใช้ บัญชีบริการ
ไปที่ IAM และผู้ดูแลระบบ > บัญชีบริการ ในคอนโซล Google Cloud สร้างคีย์ส่วนตัวใหม่และบันทึกไฟล์ JSON จากนั้นใช้ไฟล์เพื่อเริ่มต้น SDK โดยทำดังนี้
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
เพิ่มข้อมูลโดยใช้การดำเนินการหลัก
หากต้องการสำรวจการดำเนินการหลักและการดำเนินการไปป์ไลน์สำหรับการค้นหาข้อมูล ให้เพิ่มข้อมูลลงในฐานข้อมูลโดยใช้การดำเนินการหลัก
Cloud Firestore จะจัดเก็บข้อมูลในเอกสาร ซึ่งจัดเก็บไว้ใน คอลเล็กชัน Cloud Firestore จะสร้างคอลเล็กชันและเอกสารโดยนัย เมื่อคุณเพิ่มข้อมูลลงในเอกสารเป็นครั้งแรก คุณไม่จำเป็นต้องสร้างคอลเล็กชันหรือเอกสารอย่างชัดแจ้ง
สร้างคอลเล็กชันและเอกสารใหม่โดยใช้ตัวอย่างโค้ดต่อไปนี้
Node.js
Java
Python
อ่านข้อมูลโดยใช้การดำเนินการหลัก
ใช้เครื่องมือดูข้อมูลใน คอนโซล Firebase เพื่อยืนยันอย่างรวดเร็วว่าคุณได้เพิ่มข้อมูลลงใน Cloud Firestore แล้ว
นอกจากนี้ คุณยังใช้วิธี "get" เพื่อดึงข้อมูลคอลเล็กชันทั้งหมดได้ด้วย
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
อ่านข้อมูลโดยใช้การดำเนินการ Pipeline
ตอนนี้คุณสามารถเปรียบเทียบประสบการณ์การค้นหาไปป์ไลน์กับประสบการณ์การค้นหาหลักได้แล้ว
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
ขั้นตอนถัดไป
เพิ่มพูนความรู้เกี่ยวกับการดำเนินการหลักและการดำเนินการไปป์ไลน์ด้วยหัวข้อต่อไปนี้
- ตรวจสอบว่าคุณคุ้นเคยกับความแตกต่างระหว่างการดำเนินการหลักกับการดำเนินการ Pipeline
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาด้วยการดำเนินการหลัก
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาด้วยการดำเนินการ Pipeline