การเริ่มต้นอย่างรวดเร็วนี้จะแสดงวิธีตั้งค่า Cloud Firestore เพิ่มข้อมูล จากนั้นดูข้อมูลที่คุณเพิ่งเพิ่มในคอนโซล Firebase
สร้างฐานข้อมูล Cloud Firestore
หากคุณยังไม่ได้สร้างโปรเจ็กต์ Firebase: ใน คอนโซล Firebase คลิก เพิ่มโปรเจ็กต์ จากนั้นทำตามคำแนะนำบนหน้าจอเพื่อสร้างโปรเจ็กต์ Firebase หรือเพื่อเพิ่มบริการ Firebase ให้กับโปรเจ็กต์ GCP ที่มีอยู่
ไปที่ส่วน Cloud Firestore ของ คอนโซล Firebase คุณจะได้รับแจ้งให้เลือกโปรเจ็กต์ Firebase ที่มีอยู่ ปฏิบัติตามขั้นตอนการสร้างฐานข้อมูล
เลือกโหมดเริ่มต้นสำหรับกฎความปลอดภัยของ Cloud Firestore ของคุณ:
- โหมดทดสอบ
เหมาะสำหรับการเริ่มต้นใช้งานไลบรารีไคลเอนต์บนมือถือและเว็บ แต่อนุญาตให้ใครก็ตามสามารถอ่านและเขียนทับข้อมูลของคุณได้ หลังการทดสอบ อย่าลืมตรวจสอบส่วน รักษาความปลอดภัยข้อมูลของคุณ
หากต้องการเริ่มต้นใช้งานเว็บ แพลตฟอร์มของ Apple หรือ Android SDK ให้เลือกโหมดทดสอบ
- โหมดล็อค
ปฏิเสธการอ่านและเขียนทั้งหมดจากไคลเอนต์มือถือและเว็บ แอปพลิเคชันเซิร์ฟเวอร์ที่ผ่านการรับรองความถูกต้องของคุณ (C#, Go, Java, Node.js, PHP, Python หรือ Ruby) ยังคงสามารถเข้าถึงฐานข้อมูลของคุณได้
หากต้องการเริ่มต้นใช้งานไลบรารีไคลเอ็นต์เซิร์ฟเวอร์ C#, Go, Java, Node.js, PHP, Python หรือ Ruby ให้เลือกโหมดล็อค
ชุดกฎความปลอดภัยของ Cloud Firestore เริ่มต้นของคุณจะนำไปใช้กับฐานข้อมูล Cloud Firestore เริ่มต้นของคุณ หากคุณสร้างฐานข้อมูลหลายรายการสำหรับโปรเจ็กต์ของคุณ คุณสามารถปรับใช้กฎความปลอดภัยของ Cloud Firestore สำหรับแต่ละฐานข้อมูลได้
เลือก ตำแหน่ง สำหรับฐานข้อมูลของคุณ
การตั้งค่าตำแหน่งนี้คือ ตำแหน่งทรัพยากร Google Cloud Platform (GCP) เริ่มต้น ของโปรเจ็กต์ของคุณ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโปรเจ็กต์ของคุณที่ต้องมีการตั้งค่าตำแหน่ง โดยเฉพาะที่เก็บข้อมูล Cloud Storage เริ่มต้นและแอป App Engine ของคุณ (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)
หากคุณไม่สามารถเลือกตำแหน่งได้ แสดงว่าโปรเจ็กต์ของคุณมีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว มันถูกตั้งค่าระหว่างการสร้างโครงการหรือเมื่อตั้งค่าบริการอื่นที่ต้องมีการตั้งค่าตำแหน่ง
คลิก เสร็จสิ้น
เมื่อคุณเปิดใช้งาน Cloud Firestore จะเป็นการเปิดใช้งาน API ใน Cloud API Manager ด้วย
ตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ
เพิ่มการขึ้นต่อกันและไลบรารีไคลเอนต์ที่จำเป็นให้กับแอปของคุณ
Web namespaced API
- ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ให้กับเว็บแอปของคุณ
- เพิ่มไลบรารี Firebase และ Cloud Firestore ลงในแอปของคุณ:
<script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-firestore-compat.js"></script>
Cloud Firestore SDK ยังมีให้บริการในรูปแบบแพ็คเกจ npmnpm install firebase@10.7.0 --save
คุณจะต้องกำหนดทั้ง Firebase และ Cloud Firestore ด้วยตนเองimport firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web modular API
- ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ให้กับเว็บแอปของคุณ
- Cloud Firestore SDK พร้อมใช้งานเป็นแพ็คเกจ npm
npm install firebase@10.7.0 --save
คุณจะต้องนำเข้าทั้ง Firebase และ Cloud Firestoreimport { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
ไอโอเอส+
ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ลงในแอป Apple ของคุณ
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการพึ่งพา Firebase
- ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Swift Package > Add Package Dependency
- เมื่อได้รับแจ้ง ให้เพิ่มพื้นที่เก็บข้อมูล SDK แพลตฟอร์ม Firebase Apple:
- เลือกไลบรารี Firestore
- เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง
https://github.com/firebase/firebase-ios-sdk
หุ่นยนต์
- ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ลงในแอป Android ของคุณ
- ใช้ Firebase Android BoM ประกาศการพึ่งพาสำหรับไลบรารี Cloud Firestore สำหรับ Android ใน ไฟล์ Gradle โมดูล (ระดับแอป) ของคุณ (โดยปกติคือ
app/build.gradle.kts
หรือapp/build.gradle
)dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.6.0")) // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore") }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) ประกาศการพึ่งพาไลบรารี Firebase โดยไม่ต้อง ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการขึ้นต่อกัน
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอปของคุณ เราขอแนะนำอย่างยิ่งให้ใช้ BoM ในการจัดการเวอร์ชันไลบรารี ซึ่งจะทำให้แน่ใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore:24.9.1") }
กำลังมองหาโมดูลไลบรารีเฉพาะของ Kotlin อยู่ใช่ไหม? ตั้งแต่ การเปิดตัวเดือนตุลาคม 2023 เป็นต้นไป ทั้งนักพัฒนา Kotlin และ Java สามารถพึ่งพาโมดูลไลบรารีหลักได้ (สำหรับรายละเอียด โปรดดู คำถามที่พบบ่อยเกี่ยวกับโครงการริเริ่มนี้ )
Dart
- หากคุณยังไม่ได้ ดำเนินการ ให้กำหนดค่าและเริ่มต้น Firebase ในแอป Flutter ของคุณ
- จากรูทของโปรเจ็กต์ Flutter ของคุณ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน:
flutter pub add cloud_firestore
- เมื่อเสร็จแล้ว ให้สร้างแอปพลิเคชัน Flutter ของคุณใหม่:
flutter run
- ทางเลือก: ปรับปรุงเวลาในการสร้าง iOS และ macOS โดยรวมเฟรมเวิร์กที่คอมไพล์ไว้ล่วงหน้า
ปัจจุบัน Firestore SDK สำหรับ iOS ขึ้นอยู่กับโค้ดที่อาจใช้เวลานานกว่า 5 นาทีในการสร้างใน Xcode เพื่อลดเวลาในการสร้างลงอย่างมาก คุณสามารถใช้เวอร์ชันที่คอมไพล์ไว้ล่วงหน้าได้โดยเพิ่มบรรทัดนี้ไปยัง
target 'Runner' do
block ใน Podfile ของคุณ:target 'Runner' do pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.15.0' # ... end
นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณได้อัปเกรด CocoaPods เป็น 1.9.1 หรือสูงกว่า:
gem install cocoapods
สำหรับข้อมูลเพิ่มเติม โปรดดู ปัญหาบน GitHub
ชวา
- เพิ่ม Firebase Admin SDK ลงในแอปของคุณ:
- ใช้ Gradle:
compile 'com.google.firebase:firebase-admin:1.32.0'
- การใช้ Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
- ใช้ Gradle:
- ทำตามคำแนะนำด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลรับรองที่เหมาะสมในสภาพแวดล้อมของคุณ
หลาม
- เพิ่ม Firebase Admin SDK ลงในแอป Python ของคุณ:
pip install --upgrade firebase-admin
- ทำตามคำแนะนำด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลรับรองที่เหมาะสมในสภาพแวดล้อมของคุณ
ซี++
- ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ให้กับโปรเจ็กต์ C++ ของคุณ
- อินเทอร์เฟซ C++ สำหรับ Android
- การพึ่งพา Gradle เพิ่มสิ่งต่อไปนี้ลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
app/build.gradle
):android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- การพึ่งพาไบนารี ในทำนองเดียวกัน วิธีที่แนะนำในการรับการอ้างอิงแบบไบนารีคือการเพิ่มสิ่งต่อไปนี้ลงในไฟล์
CMakeLists.txt
ของคุณ:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- หากต้องการตั้งค่า การรวมเดสก์ท็อป โปรดดู เพิ่ม Firebase ให้กับโปรเจ็กต์ C++ ของคุณ
ความสามัคคี
- ทำตามคำแนะนำเพื่อ เพิ่ม Firebase ให้กับโครงการ Unity ของคุณ
- ใช้อินเทอร์เฟซ Unity เพื่อกำหนดค่าโปรเจ็กต์ของคุณให้ย่อขนาดบิลด์ Android
- ตัวเลือกนี้สามารถพบได้ใน การตั้งค่าผู้เล่น > Android > การตั้งค่าการเผยแพร่ > ย่อขนาด
- ตัวเลือกอาจแตกต่างกันไปตามเวอร์ชันต่างๆ ของ Unity ดังนั้นโปรดดู เอกสารประกอบ Unity อย่างเป็นทางการและ คู่มือการแก้ไขข้อบกพร่อง Firebase Unity Build
- หลังจากเปิดใช้งานการลดขนาดแล้ว หากจำนวนวิธีอ้างอิงยังคงเกินขีดจำกัด อีกทางเลือกหนึ่งคือเปิดใช้งาน
multidex
ใน:-
mainTemplate.gradle
หากเปิดใช้งาน เทมเพลต Gradle แบบกำหนดเอง ภายใต้ การตั้งค่าผู้เล่น - หรือไฟล์
build.gradle
ระดับโมดูล หากคุณใช้ Android Studio เพื่อสร้างโปรเจ็กต์ที่ส่งออก
-
คุณต้องย่อขนาดบิลด์เพื่อหลีกเลี่ยงข้อความ Error while merging dex archives
โหนด js
- เพิ่ม Firebase Admin SDK ลงในแอปของคุณ:
npm install firebase-admin --save
- ทำตามคำแนะนำด้านล่างเพื่อเริ่มต้น Cloud Firestore ด้วยข้อมูลรับรองที่เหมาะสมในสภาพแวดล้อมของคุณ
ไป
- เพิ่ม 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 คุณสามารถสร้างไฟล์คีย์ได้บน หน้า API Console Credentialsexport GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- ในสภาพแวดล้อมการผลิตของคุณ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์หากคุณเรียกใช้แอปพลิเคชันบน App Engine หรือ Compute Engine โดยใช้โปรเจ็กต์เดียวกันกับที่คุณใช้สำหรับ Cloud Firestore มิฉะนั้น ให้ตั้งค่าบัญชีบริการ
- หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมการพัฒนา ให้ตั้งค่าตัวแปรสภาพแวดล้อม
- ติดตั้งและเปิดใช้งาน ส่วนขยาย gRPC สำหรับ PHP ซึ่งคุณจะต้องใช้ไลบรารีไคลเอ็นต์
- เพิ่มไลบรารี Cloud Firestore PHP ลงในแอปของคุณ:
composer require google/cloud-firestore
ค#
- ไลบรารีไคลเอ็นต์เซิร์ฟเวอร์ Cloud Firestore (Java, Node.js, Python, Go, PHP, C# และ Ruby) ใช้ ข้อมูลประจำตัวเริ่มต้นของแอปพลิเคชัน Google สำหรับการตรวจสอบสิทธิ์
- หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมการพัฒนา ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
ให้ชี้ไปที่ไฟล์คีย์บัญชีบริการ JSON คุณสามารถสร้างไฟล์คีย์ได้บน หน้า API Console Credentialsexport GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- ในสภาพแวดล้อมการผลิตของคุณ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์หากคุณเรียกใช้แอปพลิเคชันบน App Engine หรือ Compute Engine โดยใช้โปรเจ็กต์เดียวกันกับที่คุณใช้สำหรับ Cloud Firestore มิฉะนั้น ให้ตั้งค่าบัญชีบริการ
- หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมการพัฒนา ให้ตั้งค่าตัวแปรสภาพแวดล้อม
- เพิ่มไลบรารี Cloud Firestore C# ลงในแอปของคุณในไฟล์
.csproj
:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
- เพิ่มสิ่งต่อไปนี้ลงในไฟล์
Program.cs
ของคุณ:using Google.Cloud.Firestore;
ทับทิม
- ไลบรารีไคลเอ็นต์เซิร์ฟเวอร์ Cloud Firestore (Java, Node.js, Python, Go, PHP, C# และ Ruby) ใช้ ข้อมูลประจำตัวเริ่มต้นของแอปพลิเคชัน Google สำหรับการตรวจสอบสิทธิ์
- หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมการพัฒนา ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
ให้ชี้ไปที่ไฟล์คีย์บัญชีบริการ JSON คุณสามารถสร้างไฟล์คีย์ได้บน หน้า API Console Credentialsexport GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- ในสภาพแวดล้อมการผลิตของคุณ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์หากคุณเรียกใช้แอปพลิเคชันบน App Engine หรือ Compute Engine โดยใช้โปรเจ็กต์เดียวกันกับที่คุณใช้สำหรับ Cloud Firestore มิฉะนั้น ให้ตั้งค่าบัญชีบริการ
- หากต้องการตรวจสอบสิทธิ์จากสภาพแวดล้อมการพัฒนา ให้ตั้งค่าตัวแปรสภาพแวดล้อม
- เพิ่มไลบรารี Cloud Firestore Ruby ลงในแอปของคุณใน
Gemfile
:gem "google-cloud-firestore"
- ติดตั้งการพึ่งพาจาก
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:
Web modular API
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = getFirestore(app);
แทนที่ FIREBASE_CONFIGURATION ด้วย firebaseConfig
ของเว็บแอปของคุณ
หากต้องการคงข้อมูลไว้เมื่ออุปกรณ์ขาดการเชื่อมต่อ โปรดดูเอกสาร ประกอบการเปิดใช้งานข้อมูลออฟไลน์
Web namespaced API
import firebase from "firebase/app"; import "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = firebase.firestore();
แทนที่ FIREBASE_CONFIGURATION ด้วย firebaseConfig
ของเว็บแอปของคุณ
หากต้องการคงข้อมูลไว้เมื่ออุปกรณ์ขาดการเชื่อมต่อ โปรดดูเอกสาร ประกอบการเปิดใช้งานข้อมูลออฟไลน์
สวิฟท์
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
วัตถุประสงค์-C
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
Kotlin+KTX
// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
Java
// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();
Dart
db = FirebaseFirestore.instance;
ชวา
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 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()
ซี++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
โหนด js
Cloud Firestore SDK ได้รับการเตรียมใช้งานในรูปแบบต่างๆ กัน ขึ้นอยู่กับสภาพแวดล้อมของคุณ ด้านล่างนี้เป็นวิธีการทั่วไป สำหรับข้อมูลอ้างอิงฉบับเต็ม โปรดดู ที่เริ่มต้น Admin SDK- เริ่มต้นบนฟังก์ชันคลาวด์
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();
ไป
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 Client Libraries
ความสามัคคี
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
ค#
ค#
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและการสร้างไคลเอ็นต์ Cloud Firestore โปรดดูที่ Cloud Firestore Client Libraries
ทับทิม
เพิ่มข้อมูล
Cloud Firestore จัดเก็บข้อมูลในเอกสารซึ่งจัดเก็บไว้ในคอลเลกชัน Cloud Firestore จะสร้างคอลเล็กชันและเอกสารโดยปริยายในครั้งแรกที่คุณเพิ่มข้อมูลลงในเอกสาร คุณไม่จำเป็นต้องสร้างคอลเลกชันหรือเอกสารอย่างชัดเจน
สร้างคอลเลกชันใหม่และเอกสารโดยใช้โค้ดตัวอย่างต่อไปนี้
Web modular API
import { collection, addDoc } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Ada", last: "Lovelace", born: 1815 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web namespaced API
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
สวิฟท์
// Add a new document with a generated ID var ref: DocumentReference? = nil ref = db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
วัตถุประสงค์-C
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Ada", "last": "Lovelace", "born": 1815 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
ชวา
หลาม
Python
ซี++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
โหนด js
ไป
PHP
PHP
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและการสร้างไคลเอ็นต์ Cloud Firestore โปรดดูที่ Cloud Firestore Client Libraries
ความสามัคคี
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
ค#
ทับทิม
ตอนนี้เพิ่มเอกสารอื่นให้กับคอลเลกชัน users
โปรดสังเกตว่าเอกสารนี้มีคู่คีย์-ค่า (ชื่อกลาง) ที่ไม่ปรากฏในเอกสารฉบับแรก เอกสารในคอลเลกชันสามารถประกอบด้วยชุดข้อมูลที่แตกต่างกัน
Web modular API
// Add a second document with a generated ID. import { addDoc, collection } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web namespaced API
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
สวิฟท์
// Add a second document with a generated ID. ref = db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
วัตถุประสงค์-C
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
ชวา
หลาม
Python
ซี++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
โหนด js
ไป
PHP
PHP
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและการสร้างไคลเอ็นต์ Cloud Firestore โปรดดูที่ Cloud Firestore Client Libraries
ความสามัคคี
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
ค#
ทับทิม
อ่านข้อมูล
ใช้โปรแกรมดูข้อมูลใน คอนโซล Firebase เพื่อยืนยันอย่างรวดเร็วว่าคุณได้เพิ่มข้อมูลลงใน Cloud Firestore แล้ว
คุณยังสามารถใช้วิธี "get" เพื่อดึงข้อมูลคอลเลกชันทั้งหมดได้
Web modular API
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web namespaced API
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
สวิฟท์
db.collection("users").getDocuments() { (querySnapshot, err) in if let err = err { print("Error getting documents: \(err)") } else { for document in querySnapshot!.documents { print("\(document.documentID) => \(document.data())") } } }
วัตถุประสงค์-C
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
Kotlin+KTX
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
Java
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
Dart
await db.collection("users").get().then((event) { for (var doc in event.docs) { print("${doc.id} => ${doc.data()}"); } });
ชวา
หลาม
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
ซี++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << std::endl; } } else { std::cout << "Error getting documents: " << future.error_message() << std::endl; } });
โหนด js
ไป
PHP
PHP
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและการสร้างไคลเอ็นต์ Cloud Firestore โปรดดูที่ Cloud Firestore Client Libraries
ความสามัคคี
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
ค#
ทับทิม
รักษาความปลอดภัยข้อมูลของคุณ
หากคุณใช้ SDK แพลตฟอร์มบนเว็บ, Android หรือ Apple ให้ใช้ การตรวจสอบสิทธิ์ Firebase และ กฎความปลอดภัยของ Cloud Firestore เพื่อรักษาความปลอดภัยข้อมูลของคุณใน Cloud Firestore
ต่อไปนี้คือชุดกฎพื้นฐานบางส่วนที่คุณสามารถใช้เพื่อเริ่มต้นใช้งาน คุณสามารถแก้ไขกฎความปลอดภัยของคุณได้ใน แท็บกฎ ของคอนโซล
ต้องมีการตรวจสอบสิทธิ์
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
โหมดล็อค
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
โหมดทดสอบ
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
ก่อนที่คุณจะปรับใช้แอปเว็บ, Android หรือ iOS ในการใช้งานจริง ให้ดำเนินการเพื่อให้แน่ใจว่ามีเพียงไคลเอ็นต์แอปของคุณเท่านั้นที่สามารถเข้าถึงข้อมูล Cloud Firestore ของคุณได้ ดูเอกสาร App Check
หากคุณใช้ SDK เซิร์ฟเวอร์ตัวใดตัวหนึ่ง ให้ใช้ Identity and Access Management (IAM) เพื่อรักษาความปลอดภัยข้อมูลของคุณใน Cloud Firestore
ชมวิดีโอสอน
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการเริ่มต้นใช้งานไลบรารีไคลเอ็นต์มือถือ Cloud Firestore โปรดดูวิดีโอบทช่วยสอนข้อใดข้อหนึ่งต่อไปนี้:
เว็บ
ไอโอเอส+
หุ่นยนต์
คุณสามารถค้นหาวิดีโอเพิ่มเติมได้ใน ช่อง Firebase YouTube
ขั้นตอนถัดไป
เพิ่มพูนความรู้ของคุณด้วยหัวข้อต่อไปนี้:
- Codelabs — เรียนรู้การใช้ Cloud Firestore ในแอปจริงโดยทำตาม Codelab สำหรับ Android , iOS หรือ Web
- โมเดลข้อมูล — เรียนรู้เพิ่มเติมเกี่ยวกับวิธีจัดโครงสร้างข้อมูลใน Cloud Firestore รวมถึงข้อมูลแบบลำดับชั้นและคอลเลกชันย่อย
- เพิ่มข้อมูล — เรียนรู้เพิ่มเติมเกี่ยวกับการสร้างและอัปเดตข้อมูลใน Cloud Firestore
- รับข้อมูล — เรียนรู้เพิ่มเติมเกี่ยวกับวิธีดึงข้อมูล
- ทำการสืบค้นแบบง่ายและแบบผสม — เรียนรู้วิธีเรียกใช้การสืบค้นแบบง่ายและแบบผสม
- ลำดับและจำกัดการสืบค้น เรียนรู้วิธีเรียงลำดับและจำกัดข้อมูลที่ส่งคืนจากการสืบค้นของคุณ