คู่มือเริ่มต้นฉบับย่อนี้จะแสดงวิธีตั้งค่า Firestore Enterprise Edition, เพิ่มข้อมูล จากนั้นดูข้อมูลที่คุณเพิ่งเพิ่มในคอนโซล Firebase โดยใช้ไคลเอ็นต์ฝั่งเซิร์ฟเวอร์ สำหรับ C#, Go, Java, Node.js, PHP, Python และ Ruby
ใช้ไลบรารีของไคลเอ็นต์เหล่านี้เพื่อตั้งค่าสภาพแวดล้อมของเซิร์ฟเวอร์ที่มีสิทธิ์พร้อมสิทธิ์เข้าถึงฐานข้อมูลของคุณอย่างเต็มรูปแบบ
สร้างฐานข้อมูล Cloud Firestore
หากยังไม่ได้สร้างโปรเจ็กต์ Firebase ให้สร้างในคอนโซล Firebase โดยคลิกเพิ่มโปรเจ็กต์ แล้วทำตามวิธีการบนหน้าจอเพื่อสร้างโปรเจ็กต์ Firebase หรือเพื่อ เพิ่มบริการ Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่
ในแผงด้านซ้าย ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > Firestore
คลิกสร้างฐานข้อมูล
เลือกตำแหน่งสำหรับฐานข้อมูล
หากเลือกสถานที่ตั้งไม่ได้ แสดงว่าระบบได้ตั้งค่า"สถานที่ตั้งสำหรับทรัพยากร Google Cloud เริ่มต้น" ของโปรเจ็กต์ไว้แล้ว ทรัพยากรบางอย่างของโปรเจ็กต์ (เช่น อินสแตนซ์ Cloud Firestoreเริ่มต้น) มีการอิงตามตำแหน่งร่วมกัน และ สามารถตั้งค่าตำแหน่งได้ในระหว่างการสร้างโปรเจ็กต์หรือเมื่อตั้งค่า บริการอื่นที่ใช้การอิงตามตำแหน่งนี้ร่วมกัน
เลือกโหมดเริ่มต้นสำหรับ Cloud Firestore Security Rules
- โหมดทดสอบ
เหมาะสําหรับการเริ่มต้นใช้งานไลบรารีไคลเอ็นต์บนอุปกรณ์เคลื่อนที่และเว็บ แต่จะอนุญาตให้ทุกคนอ่านและเขียนทับข้อมูลของคุณได้ หลังจากทดสอบแล้ว อย่าลืมตรวจสอบส่วนรักษาความปลอดภัยของข้อมูล
หากต้องการเริ่มต้นใช้งาน SDK ของเว็บ, แพลตฟอร์ม Apple หรือ Android ให้เลือกโหมดทดสอบ
- โหมดโปรดักชัน
ปฏิเสธการอ่านและการเขียนทั้งหมดจากไคลเอ็นต์บนอุปกรณ์เคลื่อนที่และเว็บ เซิร์ฟเวอร์แอปพลิเคชันที่ได้รับการตรวจสอบสิทธิ์ (C#, Go, Java, Node.js, PHP, Python หรือ Ruby) จะยังคงเข้าถึงฐานข้อมูลได้
หากต้องการเริ่มต้นใช้งานไลบรารีของไคลเอ็นต์ฝั่งเซิร์ฟเวอร์ C#, Go, Java, Node.js, PHP, Python หรือ Ruby ให้เลือกโหมดการผลิต
ชุด Cloud Firestore Security Rules เริ่มต้นจะมีผลกับฐานข้อมูลเริ่มต้น Cloud Firestore หากสร้างฐานข้อมูลหลายรายการสำหรับโปรเจ็กต์ คุณสามารถติดตั้งใช้งาน Cloud Firestore Security Rules สำหรับแต่ละฐานข้อมูลได้
คลิกสร้าง
เมื่อเปิดใช้ Cloud Firestore ระบบจะเปิดใช้ API ใน Cloud API Manager ด้วย
ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
เพิ่มทรัพยากร Dependency และไลบรารีของไคลเอ็นต์ที่จำเป็นลงในแอป
Java
- เพิ่ม Firebase Admin SDK ลงในแอปโดยทำดังนี้
-
หากใช้ Gradle
implementation 'com.google.firebase:firebase-admin:9.11.0'
-
การใช้ Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.11.0</version> </dependency>
-
หากใช้ Gradle
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
Python
- เพิ่ม Firebase Admin SDK ลงในแอป Python โดยทำดังนี้
pip install --upgrade firebase-admin
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
Node.js
-
เพิ่ม Firebase Admin SDK ลงในแอปโดยทำดังนี้
npm install firebase-admin --save
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
Go
- เพิ่ม Firebase Admin SDK ลงในแอป Go โดยทำดังนี้
go get firebase.google.com/go
- ทำตามวิธีการด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลเข้าสู่ระบบที่เหมาะสมในสภาพแวดล้อมของคุณ
PHP
-
ไลบรารีของไคลเอ็นต์เซิร์ฟเวอร์ Cloud Firestore (Java, Node.js, Python, Go, PHP, C# และ Ruby) ใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชันของ Google
สำหรับการตรวจสอบสิทธิ์
-
หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALSให้ชี้ไปยังไฟล์คีย์บัญชีบริการ JSON คุณสร้างไฟล์คีย์ได้ ในหน้าข้อมูลเข้าสู่ระบบของคอนโซล APIexport GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json" - ในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์หากเรียกใช้แอปพลิเคชัน ใน App Engine หรือ Compute Engine โดยใช้โปรเจ็กต์เดียวกันกับที่ใช้สำหรับ Cloud Firestore หรือตั้งค่าบัญชีบริการ
-
หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ให้ตั้งค่าตัวแปรสภาพแวดล้อม
- ติดตั้งและเปิดใช้ส่วนขยาย gRPC สำหรับ PHP ซึ่งคุณจะต้องใช้ไลบรารีของไคลเอ็นต์
-
เพิ่มไลบรารี PHP ของ Cloud Firestore ลงในแอปโดยทำดังนี้
composer require google/cloud-firestore
Ruby
-
ไลบรารีของไคลเอ็นต์เซิร์ฟเวอร์ Cloud Firestore (Java, Node.js, Python, Go, PHP, C# และ Ruby) ใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชันของ Google
สำหรับการตรวจสอบสิทธิ์
-
หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALSให้ชี้ไปยังไฟล์คีย์บัญชีบริการ JSON คุณสร้างไฟล์คีย์ได้ ในหน้าข้อมูลเข้าสู่ระบบของคอนโซล APIexport GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- ในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์หากเรียกใช้แอปพลิเคชัน ใน App Engine หรือ Compute Engine โดยใช้โปรเจ็กต์เดียวกันกับที่ใช้สำหรับ Cloud Firestore หรือตั้งค่าบัญชีบริการ
-
หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ให้ตั้งค่าตัวแปรสภาพแวดล้อม
-
เพิ่มไลบรารี Cloud Firestore Ruby ลงในแอปใน
Gemfileโดยทำดังนี้gem "google-cloud-firestore"
-
ติดตั้งทรัพยากร Dependency จาก
Gemfileโดยใช้คำสั่งต่อไปนี้bundle install
(ไม่บังคับ) สร้างต้นแบบและทดสอบด้วย Firebase Local Emulator Suite
สำหรับนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ ก่อนที่จะพูดถึงวิธีที่แอปเขียนและอ่านข้อมูลจาก Cloud Firestore เรามาแนะนำชุดเครื่องมือที่คุณใช้เพื่อสร้างต้นแบบและทดสอบฟังก์ชันการทำงานของ Cloud Firestore กันก่อน Firebase Local Emulator Suite หากคุณกำลังลองใช้โมเดลข้อมูลต่างๆ เพิ่มประสิทธิภาพกฎความปลอดภัย หรือพยายามหาวิธีที่มีประสิทธิภาพด้านต้นทุนมากที่สุด ในการโต้ตอบกับแบ็กเอนด์ การทำงานในเครื่องโดยไม่ต้องติดตั้งใช้งาน บริการที่ใช้งานจริงอาจเป็นไอเดียที่ดี
Cloud Firestoreโปรแกรมจำลองเป็นส่วนหนึ่งของ Local Emulator Suite ซึ่งช่วยให้แอปของคุณโต้ตอบกับเนื้อหาและค่ากำหนดของฐานข้อมูลที่จำลองได้ รวมถึงทรัพยากรของโปรเจ็กต์ที่จำลอง (ฟังก์ชัน ฐานข้อมูลอื่นๆ และกฎความปลอดภัย) ได้ด้วย (ไม่บังคับ)
การใช้Cloud Firestoreโปรแกรมจำลองมีเพียงไม่กี่ขั้นตอน ดังนี้
- การเพิ่มบรรทัดโค้ดลงในการกำหนดค่าการทดสอบของแอปเพื่อเชื่อมต่อกับโปรแกรมจำลอง
- จากรูทของไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง ให้เรียกใช้
firebase emulators:start - การโทรจากโค้ดต้นแบบของแอปโดยใช้ Cloud Firestore SDK ของแพลตฟอร์ม ตามปกติ
มีคำแนะนำแบบทีละขั้นตอนโดยละเอียดเกี่ยวกับ Cloud Firestore และ Cloud Functions นอกจากนี้ คุณควรดูLocal Emulator Suiteบทนำด้วย
เริ่มต้น Cloud Firestore
เริ่มต้นอินสแตนซ์ของ Cloud Firestore
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();
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()
Python
ระบบจะเริ่มต้น Cloud Firestore SDK ในรูปแบบต่างๆ ขึ้นอยู่กับสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่ เริ่มต้นใช้งาน Admin SDKimport firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
นอกจากนี้ยังใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันที่มีอยู่เพื่อเริ่มต้น SDK ได้ด้วย
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.client()
หากต้องการใช้ Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณเอง ให้ใช้บัญชีบริการ
ไปที่ IAM และผู้ดูแลระบบ > บัญชีบริการ ในคอนโซล Google Cloud สร้างคีย์ส่วนตัวใหม่และบันทึกไฟล์ JSON จากนั้นใช้ไฟล์เพื่อเริ่มต้น SDK ดังนี้
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
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();
Go
ระบบจะเริ่มต้น Cloud Firestore SDK ในรูปแบบต่างๆ ขึ้นอยู่กับสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่ เริ่มต้นใช้งาน Admin SDKimport ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
หากต้องการใช้ Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณเอง ให้ใช้บัญชีบริการ
ไปที่ IAM และผู้ดูแลระบบ > บัญชีบริการ ในคอนโซล Google Cloud สร้างคีย์ส่วนตัวใหม่และบันทึกไฟล์ JSON จากนั้นใช้ไฟล์เพื่อเริ่มต้น SDK ดังนี้
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและสร้างCloud Firestoreไคลเอ็นต์ได้ที่ Cloud Firestoreไลบรารีของไคลเอ็นต์
C#
C#
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและสร้างCloud Firestoreไคลเอ็นต์ได้ที่ Cloud Firestoreไลบรารีของไคลเอ็นต์
Ruby
เพิ่มข้อมูล
Cloud Firestore จัดเก็บข้อมูลในเอกสาร ซึ่งจัดเก็บไว้ในคอลเล็กชัน Cloud Firestore จะสร้างคอลเล็กชันและเอกสารโดยนัย เมื่อคุณเพิ่มข้อมูลลงในเอกสารเป็นครั้งแรก คุณไม่จำเป็นต้องสร้างคอลเล็กชันหรือเอกสารอย่างชัดเจน
สร้างคอลเล็กชันและเอกสารใหม่โดยใช้โค้ดตัวอย่างต่อไปนี้
Java
Python
Python
Node.js
Go
PHP
PHP
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและสร้างCloud Firestoreไคลเอ็นต์ได้ที่ Cloud Firestoreไลบรารีของไคลเอ็นต์
C#
Ruby
ตอนนี้ให้เพิ่มเอกสารอีกฉบับลงในคอลเล็กชัน users โปรดสังเกตว่าเอกสารนี้
มีคู่คีย์-ค่า (ชื่อกลาง) ที่ไม่ปรากฏในเอกสารแรก
เอกสารในคอลเล็กชันอาจมีชุดข้อมูลที่แตกต่างกัน
Java
Python
Python
Node.js
Go
PHP
PHP
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและสร้างCloud Firestoreไคลเอ็นต์ได้ที่ Cloud Firestoreไลบรารีของไคลเอ็นต์
C#
Ruby
อ่านข้อมูล
ใช้เครื่องมือแสดงข้อมูลในคอนโซล Firebase เพื่อยืนยันอย่างรวดเร็วว่าคุณได้เพิ่มข้อมูลลงใน Cloud Firestore แล้ว
นอกจากนี้ คุณยังใช้วิธี "get" เพื่อดึงข้อมูลทั้งคอลเล็กชันได้ด้วย
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
Node.js
Go
PHP
PHP
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและสร้างCloud Firestoreไคลเอ็นต์ได้ที่ Cloud Firestoreไลบรารีของไคลเอ็นต์
C#
Ruby
ขั้นตอนถัดไป
เพิ่มพูนความรู้ด้วยหัวข้อต่อไปนี้
- โมเดลข้อมูล — ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดโครงสร้างข้อมูลใน Cloud Firestore รวมถึงข้อมูลลำดับชั้นและคอลเล็กชันย่อย
- เพิ่มข้อมูล — ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและอัปเดตข้อมูลใน Cloud Firestore
- รับข้อมูล — ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีดึงข้อมูล
- ทำการค้นหาแบบง่ายและแบบผสม - ดูวิธีเรียกใช้การค้นหาแบบง่ายและแบบผสม
- จัดเรียงและจำกัดการค้นหา ดูวิธีจัดเรียง และจำกัดข้อมูลที่การค้นหาแสดง