אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט Android.
ליצור מסד נתונים
עוברים לקטע Realtime Database מסוף Firebase. תתבקשו לבחור פרויקט Firebase קיים. לפעול לפי תהליך העבודה ליצירת מסד נתונים.
צריך לבחור מצב התחלה עבור Firebase Security Rules:
- מצב בדיקה
מתאימים לתחילת העבודה עם ספריות לקוח לנייד ולאינטרנט, אבל הוא מאפשר לכל אחד לקרוא ולהחליף את הנתונים שלכם. לאחר הבדיקה, מבצעים חשוב לקרוא את הכללים בנושא מסדי נתונים בזמן אמת ב-Firebase .
כדי להתחיל לעבוד עם ה-SDK לאינטרנט, ל-Apple או ל-Android, בוחרים באפשרות testmode.
- מצב נעילה
דוחה את כל פעולות הקריאה והכתיבה ללקוחות בנייד ובאינטרנט. שרתי האפליקציות המאומתים עדיין יכולים לגשת למסד הנתונים שלכם.
בוחרים את המיקום למסד הנתונים.
בהתאם למיקום של מסד הנתונים, כתובת ה-URL של מסד הנתונים החדש תהיה באחד מהפורמטים הבאים:
(למסדי נתונים ב-DATABASE_NAME.firebaseio.com
us-central1
) (למסדי נתונים בכל המיקומים האחרים)DATABASE_NAME.REGION.firebasedatabase.app
לוחצים על סיום.
כשמפעילים את Realtime Database, הוא מפעיל את ה-API גם Cloud API Manager
הוספת ה-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.2.0")) // 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 אובייקטים. כששומרים אובייקט, התשובות של כל נמען יישמרו בתור הילדים במיקום הזה.
הקראה ממסד הנתונים שלך
כדי שנתוני האפליקציה שלך יתעדכנו בזמן אמת, צריך להוסיף
ValueEventListener
לקובץ העזר שיצרתם.
ה-method onDataChange()
במחלקה הזו מופעלת פעם אחת כשה-listener מופעל
בכל פעם שהנתונים משתנים, כולל הצאצאים.
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, צריך:
לוקחים בחשבון את האופן שבו אובייקטים של המודל יעברו סריאליזציה וביטול סריאליזציה
ערפול קוד (obfuscation). אם משתמשים ב-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 כדי לוודא רק האפליקציות שלכם יכולות לגשת למסדי הנתונים.