คู่มือเริ่มใช้งานฉบับย่อนี้จะแสดงวิธีตั้งค่า 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 - การโทรจากโค้ดต้นแบบของแอปโดยใช้ SDK ของแพลตฟอร์ม Cloud Firestore ตามปกติ
ดูคำแนะนำแบบทีละขั้นตอนเกี่ยวกับ Cloud Firestore และ Cloud Functions ได้ นอกจากนี้ คุณควรดูข้อมูลเบื้องต้นเกี่ยวกับ Local Emulator Suite ด้วย
เริ่มต้น Cloud Firestore
เริ่มต้นอินสแตนซ์ของ Cloud Firestore:
Java
SDK ของ Cloud Firestore จะเริ่มต้นในลักษณะที่แตกต่างกันไปตามสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่หัวข้อเริ่มต้น 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
SDK ของ Cloud Firestore จะเริ่มต้นในรูปแบบที่แตกต่างกันไปตามสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่หัวข้อเริ่มต้น 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
SDK ของ Cloud Firestore จะเริ่มต้นในลักษณะที่แตกต่างกันไปตามสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่หัวข้อเริ่มต้นใช้งาน 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
SDK ของ Cloud Firestore จะเริ่มต้นในลักษณะที่แตกต่างกันไปตามสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่หัวข้อเริ่มต้นใช้งาน 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
SDK ของ Cloud Firestore จะเริ่มต้นในรูปแบบที่แตกต่างกันไปตามสภาพแวดล้อมของคุณ วิธีการที่พบบ่อยที่สุดมีดังนี้ ดูข้อมูลอ้างอิงทั้งหมดได้ที่หัวข้อเริ่มต้นใช้งาน 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
- รับข้อมูล - ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีดึงข้อมูล
- ทำการค้นหาแบบง่ายและแบบผสม - ดูวิธีเรียกใช้การค้นหาแบบง่ายและแบบผสม
- จัดลำดับและจำกัดการค้นหา ดูวิธีจัดลำดับและจำกัดข้อมูลที่แสดงผลจากการค้นหา