Pangkalan Data Cloud Firestore
Gunakan Cloud Firestore, pangkalan data dokumen NoSQL, untuk menyimpan dan menyegerakkan data secara masa nyata merentas semua klien yang bersambung.
Pangkalan Data Cloud Firestore ialah pelajaran Pembangunan Aplikasi Mudah Alih Flutter percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pembangunan Aplikasi Mudah Alih Flutter, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pembangunan Aplikasi Mudah Alih Flutter merangkumi sejumlah 4 pelajaran.
Apakah Cloud Firestore?
Selamat datang ke Cloud Firestore! Ia ialah pangkalan data dokumen NoSQL yang fleksibel dan boleh diskalakan untuk pembangunan mudah alih, web dan pelayan daripada Firebase.
Ia memastikan data Anda disegerakkan merentas aplikasi klien dalam masa nyata dan menawarkan sokongan luar talian, menjadikannya sesuai untuk aplikasi yang responsif.
Cara Data Disusun
Firestore menyimpan data dalam dokumen, yang menyerupai objek JSON. Dokumen disusun ke dalam koleksi, iaitu bekas untuk dokumen.
- Koleksi: Kumpulan dokumen.
- Dokumen: Pasangan kunci-nilai (medan) yang boleh mengandungi subkoleksi.
- Medan: Titik data sebenar dalam dokumen.
Firestore berbanding Realtime Database
Firebase menawarkan dua pangkalan data: Firestore dan Realtime Database. Firestore biasanya lebih sesuai untuk aplikasi baharu kerana model datanya lebih intuitif, pertanyaan yang berkuasa dan kebolehskalaan yang lebih baik.
Anggap Firestore sebagai naik taraf moden yang menawarkan struktur dan keupayaan pertanyaan yang lebih baik untuk data yang kompleks.
Mengakses Firestore dalam Flutter
Untuk berinteraksi dengan Firestore, pastikan Anda telah memulakan Firebase terlebih dahulu (daripada Pelajaran 1). Kemudian, dapatkan tika FirebaseFirestore:
Anda perlu menambahkan pakej cloud_firestore pada pubspec.yaml Anda.
import 'package:cloud_firestore/cloud_firestore.dart';
// Ensure Firebase is initialized in your main() or similar
// For example: await Firebase.initializeApp();
void main() {
FirebaseFirestore db = FirebaseFirestore.instance;
print("Firestore instance obtained!");
// You would typically use this 'db' instance
// within your Flutter widgets.
}Menyimpan Dokumen Baharu
Anda boleh menambahkan data pada Firestore menggunakan set() atau add(). set() membolehkan Anda menentukan ID dokumen, manakala add() menjana ID secara automatik.
Mari tambahkan pengguna baharu pada koleksi 'users':
import 'package:cloud_firestore/cloud_firestore.dart';
// Assume Firebase.initializeApp() is done.
void main() async {
FirebaseFirestore db = FirebaseFirestore.instance;
// Using .add() - Firestore generates a document ID
DocumentReference docRef = await db.collection("users").add({
"name": "Alice",
"email": "alice@example.com",
"age": 30,
"isActive": true
});
print("Document added with ID: ${docRef.id}");
// Using .set() - you provide the document ID
await db.collection("cities").doc("LA").set({
"name": "Los Angeles",
"state": "CA",
"country": "USA"
});
print("City 'LA' added.");
}Mendapatkan Data Sekali
Untuk membaca satu dokumen, rujuk koleksi dan ID dokumen tersebut, kemudian panggil get().
Tindakan ini mendapatkan data sekali sahaja. Seterusnya, kita akan melihat kemas kini masa nyata.
import 'package:cloud_firestore/cloud_firestore.dart';
// Assume Firebase.initializeApp() is done.
void main() async {
FirebaseFirestore db = FirebaseFirestore.instance;
// Replace 'some_doc_id' with an actual ID from your Firestore
DocumentSnapshot doc = await db.collection("users").doc("some_doc_id").get();
if (doc.exists) {
print("Document data: ${doc.data()}");
print("User name: ${doc.get('name')}");
} else {
print("No such document!");
}
}Mengubah Suai Dokumen Sedia Ada
Gunakan kaedah update() pada rujukan dokumen untuk mengubah medan tertentu tanpa menulis ganti keseluruhan dokumen.
Ini berguna untuk membuat pelarasan kecil pada rekod sedia ada.
import 'package:cloud_firestore/cloud_firestore.dart';
// Assume Firebase.initializeApp() is done.
void main() async {
FirebaseFirestore db = FirebaseFirestore.instance;
// Replace 'some_doc_id' with an actual ID
String docIdToUpdate = "some_doc_id";
await db.collection("users").doc(docIdToUpdate).update({
"age": 31,
"city": "New York" // Add a new field
});
print("Document updated successfully!");
// You can also update nested fields using dot notation
// await db.collection("users").doc(docIdToUpdate).update({
// "address.street": "Main St"
// });
}Mengalih Keluar Dokumen dan Medan
Anda boleh memadamkan keseluruhan dokumen atau hanya medan tertentu dalam dokumen.
- Gunakan
delete()pada rujukan dokumen untuk mengalih keluar keseluruhan dokumen. - Gunakan
FieldValue.delete()dalam panggilanupdate()untuk mengalih keluar medan tertentu.
import 'package:cloud_firestore/cloud_firestore.dart';
// Assume Firebase.initializeApp() is done.
void main() async {
FirebaseFirestore db = FirebaseFirestore.instance;
// Replace with an actual document ID you wish to delete
String docIdToDelete = "some_other_doc_id";
// Delete a specific field from a document
await db.collection("users").doc("some_doc_id").update({
"isActive": FieldValue.delete()
});
print("Field 'isActive' deleted from document 'some_doc_id'.");
// Delete an entire document
await db.collection("users").doc(docIdToDelete).delete();
print("Document '${docIdToDelete}' deleted.");
}Kemas Kini Data Masa Nyata
Salah satu ciri Firestore yang paling berkuasa ialah penyegerakan data masa nyata. Gunakan snapshots() untuk mendengar perubahan pada dokumen atau koleksi.
Aplikasi Anda akan menerima kemas kini secara automatik setiap kali data berubah dalam pangkalan data.
import 'package:cloud_firestore/cloud_firestore.dart';
// Assume Firebase.initializeApp() is done.
void main() {
FirebaseFirestore db = FirebaseFirestore.instance;
// Listen to a single document
db.collection("users").doc("some_doc_id").snapshots().listen((snapshot) {
if (snapshot.exists) {
print("Real-time update for doc: ${snapshot.data()}");
} else {
print("Document no longer exists.");
}
});
// Listen to a whole collection
db.collection("users").snapshots().listen((snapshot) {
print("Real-time update for collection. Total docs: ${snapshot.docs.length}");
for (var doc in snapshot.docs) {
print(" - ${doc.id}: ${doc.data()['name']}");
}
});
print("Listeners set up. App will now receive real-time updates.");
// In a real Flutter app, this would be part of a StatefulWidget's initState
// and listeners would be cancelled in dispose().
}Pertanyaan Data Lanjutan
Firestore membolehkan Anda membuat pertanyaan berkuasa untuk menapis dan menyusun data. Anda boleh merangkaikan berbilang klausa where() dan panggilan orderBy().
where('field', isEqualTo: value)orderBy('field', descending: true)limit(count)
Ingat bahawa pertanyaan kompleks mungkin memerlukan Anda mencipta indeks dalam konsol Firebase.
Semakan Operasi Firestore
Antara pernyataan berikut, yang manakah tentang operasi Cloud Firestore adalah TRUE?
Ringkasan Firestore
Syabas! Anda telah mempelajari asas Cloud Firestore, termasuk strukturnya sebagai NoSQL serta cara menambahkan, membaca, mengemas kini dan memadam data.
Anda juga telah meneroka pendengar masa nyata dan pertanyaan asas. Firestore ialah alat yang berkuasa untuk membina aplikasi Flutter dinamik yang dipacu data!
Seterusnya, kita akan meneroka Firebase Cloud Storage untuk mengendalikan fail yang lebih besar seperti imej dan video.
Pelajari Dart dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Soalan Lazim
Adakah pelajaran “Pangkalan Data Cloud Firestore” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pembangunan Aplikasi Mudah Alih Flutter, termasuk “Pangkalan Data Cloud Firestore”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pembangunan Aplikasi Mudah Alih Flutter merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pangkalan Data Cloud Firestore”?
Gunakan Cloud Firestore, pangkalan data dokumen NoSQL, untuk menyimpan dan menyegerakkan data secara masa nyata merentas semua klien yang bersambung. Anda berlatih Pembangunan Aplikasi Mudah Alih Flutter menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pembangunan Aplikasi Mudah Alih Flutter?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pembangunan Aplikasi Mudah Alih Flutter di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Pangkalan Data Cloud Firestore” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pembangunan Aplikasi Mudah Alih Flutter ini?
Ya. Setiap pelajaran Pembangunan Aplikasi Mudah Alih Flutter menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Persediaan dan Pengesahan Firebase
- Pangkalan Data Cloud Firestore
- Cloud Storage dan Functions
- Firebase Cloud Messaging dan Pemberitahuan