אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט Android.
יצירת מסד נתונים
עוברים לקטע Realtime Database במסוף Firebase. תתבקשו לבחור פרויקט Firebase קיים. לפעול לפי תהליך העבודה ליצירת מסד נתונים.
בוחרים מצב התחלה ל-Firebase Security Rules:
- מצב בדיקה
מתאים לתחילת העבודה עם ספריות הלקוח לנייד ולאינטרנט, אבל מאפשר לכל אחד לקרוא את הנתונים ולכתוב עליהם. אחרי הבדיקה, חשוב לקרוא את הקטע הסבר על הכללים של Firebase Realtime Database.
כדי להתחיל לעבוד עם SDK לאינטרנט, ל-Apple או ל-Android, בוחרים באפשרות testmode.
- מצב נעילה
דחייה של כל פעולות הקריאה והכתיבה מלקוחות בנייד ומלקוחות אינטרנט. שרתי האפליקציות המאומתים עדיין יכולים לגשת למסד הנתונים.
בוחרים מיקום למסד הנתונים.
בהתאם למיקום של מסד הנתונים, כתובת ה-URL של מסד הנתונים החדש תהיה באחד מהפורמטים הבאים:
(למסדי נתונים ב-DATABASE_NAME.firebaseio.com
us-central1
) (למסדי נתונים בכל המיקומים האחרים)DATABASE_NAME.REGION.firebasedatabase.app
לוחצים על סיום.
כשמפעילים את Realtime Database, ה-API מופעל גם במנהל Cloud API.
הוספת ה-SDK של Realtime Database לאפליקציה
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל<project>/<app-module>/build.gradle.kts
או <project>/<app-module>/build.gradle
), מוסיפים את התלות לספריית Realtime Database ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בגרסאות הספרייה.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database") }
אם תשתמשו ב-Firebase Android BoM, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Android של Firebase.
(חלופה) מוסיפים יחסי תלות לספריות של Firebase בלי להשתמש ב-BoM
אם בוחרים לא להשתמש ב-Firebase BoM, צריך לציין את כל הגרסאות של ספריות Firebase בשורת התלות שלהן.
שימו לב: אם אתם משתמשים במספר ספריות של Firebase באפליקציה, מומלץ מאוד להשתמש ב-BoM כדי לנהל את הגרסאות של הספריות, וכך לוודא שכל הגרסאות תואמות.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database:21.0.0") }
הגדרה של Realtime Database Security Rules
בRealtime Database יש ניסוח של כללים הצהרתי שמאפשר להגדיר את המבנה של הנתונים, איך כדאי להוסיף אותם לאינדקס ומתי אפשר לקרוא את הנתונים ולכתוב אותם.
כתיבה למסד הנתונים
מאחזרים מופע של מסד הנתונים באמצעות getInstance()
ומפנות למיקום שבו רוצים לכתוב.
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
ניתן לשמור במסד הנתונים מגוון סוגי נתונים, כולל אובייקטי Java. כששומרים אובייקט, התשובות מכל פונקציות ה-getter יישמרו כצאצאים של המיקום הזה.
הקראה ממסד הנתונים שלך
כדי שהנתונים של האפליקציה יתעדכנו בזמן אמת, צריך להוסיף את הערך ValueEventListener
למזהה שיצרתם.
השיטה onDataChange()
בכיתה הזו מופעלת פעם אחת כשהמאזין מצורף, ופעם נוספת בכל פעם שהנתונים משתנים, כולל הצאצאים.
Kotlin+KTX
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
אופציונלי: הגדרת ProGuard
כשמשתמשים ב-Firebase Realtime Database באפליקציה יחד עם ProGuard, צריך להביא בחשבון איך אובייקטי המודל יעברו סריאליזציה ורסטורציה אחרי ההסתרה. אם אתם משתמשים ב-DataSnapshot.getValue(Class)
או ב-DatabaseReference.setValue(Object)
כדי לקרוא ולכתוב נתונים, תצטרכו להוסיף כללים לקובץ proguard-rules.pro
:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
כדי לקבל עזרה לגבי שאלות או בעיות שקשורות ל-ProGuard, תוכלו להיכנס לפורומים של קהילת Guardsquare כדי לקבל עזרה ממומחה.
מתכוננים להשקה
לפני השקת האפליקציה, מומלץ לעבור על רשימת המשימות להשקה כדי לוודא שהאפליקציה מוכנה.
הקפידו להפעיל את App Check כדי להבטיח שרק לאפליקציות שלכם תהיה גישה למסדי הנתונים שלכם.