דרישות מוקדמות
- אם עדיין לא עשיתם זאת, התקינו את
firebase_coreוהוסיפו את קוד האיניציאליזציה לאפליקציה. - מוסיפים את האפליקציה לפרויקט Firebase במסוף Firebase.
יצירת מסד נתונים
במסוף Firebase, נכנסים אל Databases & Storage > מסד נתונים בזמן אמת.
לוחצים על Create database.
בוחרים מצב התחלתי ל-Firebase Security Rules:
מצב בדיקה
מתאים להתחלת העבודה עם ספריות הלקוח לנייד ולאינטרנט, אבל מאפשר לכל אחד לקרוא את הנתונים ולשכתב אותם. אחרי הבדיקה, חשוב לעיין בקטע הסבר על כללי מסד הנתונים בזמן אמת ב-Firebase.
כדי להתחיל, בוחרים במצב בדיקה.
מצב נעילה
דוחה את כל פעולות הקריאה והכתיבה מלקוחות בנייד ובאינטרנט. שרתי האפליקציות המאומתים עדיין יכולים לגשת למסד הנתונים.
בוחרים אזור למסד הנתונים. בהתאם לאזור שבחרתם, מרחב השמות של מסד הנתונים יהיה בפורמט
<databaseName>.firebaseio.comאו<databaseName>.<region>.firebasedatabase.app. למידע נוסף, קראו את המאמר בחירת מיקומים לפרויקט.לוחצים על סיום.
כשמפעילים את מסד נתונים בזמן אמת, ה-API מופעל גם ב-Cloud API Manager.
הוספת מסד נתונים בזמן אמת ב-Firebase לאפליקציה
מהרמה הבסיסית (root) של פרויקט Flutter, מריצים את הפקודה הבאה כדי להתקין את הפלאגין:
flutter pub add firebase_databaseבסיום, בונים מחדש את אפליקציית Flutter:
flutter run
הגדרת כללי מסד נתונים
מסד נתונים בזמן אמת מספק שפת כללים הצהרתית שמאפשרת להגדיר את מבנה הנתונים, את אופן ההוספה שלהם לאינדקס ואת המועדים שבהם אפשר לקרוא את הנתונים ולכתוב אותם.
מפעילים את החבילה של מסד הנתונים בזמן אמת ב-Firebase
כדי להתחיל להשתמש בחבילת מסד נתונים בזמן אמת בפרויקט, מייבאים אותה בחלק העליון של קובצי הפרויקט:
import 'package:firebase_database/firebase_database.dart';
כדי להשתמש במכונה של מסד הנתונים שמוגדרת כברירת מחדל, צריך להפעיל את ה-getter של instance ב-FirebaseDatabase:
FirebaseDatabase database = FirebaseDatabase.instance;
אם רוצים להשתמש בו עם אפליקציית Firebase משנית, משתמשים בשיטה הסטטית instanceFor:
FirebaseApp secondaryApp = Firebase.app('SecondaryApp');
FirebaseDatabase database = FirebaseDatabase.instanceFor(app: secondaryApp);
אם רוצים להשתמש במכונה אחרת של RTDB באותו פרויקט, אפשר להעביר databaseUrl באמצעות השיטה הסטטית instanceFor:
final firebaseApp = Firebase.app();
final rtdb = FirebaseDatabase.instanceFor(app: firebaseApp, databaseURL: 'https://your-realtime-database-url.firebaseio.com/');