firebase-database Samouczek
Rozpoczęcie pracy z bazą danych Firebase
Szukaj…
Uwagi
W tej sekcji omówiono, czym jest baza danych firebase i dlaczego deweloper może chcieć z niej korzystać.
Powinien również wymieniać wszelkie duże tematy w bazie danych Firebase i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja bazy danych firebase jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Wersje
| Platform SDK | Wersja | Data wydania |
|---|---|---|
| Firebase JavaScript SDK | 3.7.0 | 01.03.2017 |
| Firebase C ++ SDK | 3.0.0 | 2107–02–27 |
| Firebase Unity SDK | 3.0.0 | 2107–02–27 |
| Firebase iOS SDK | 3.14.0 | 23.02.2017 |
| Firebase Android SDK | 10.2 | 15.02.2017 |
| Firebase Admin Node.js SDK | 4.1.1 | 14.02.2017 |
| Firebase Admin Java SDK | 4.1.2 | 14.02.2017 |
Dodaj Firebase do swojego projektu Android
Tutaj kroki wymagane do utworzenia projektu Firebase i połączenia go z aplikacją na Androida.
Dodaj Firebase do swojej aplikacji
Utwórz projekt Firebase w konsoli Firebase i kliknij Utwórz nowy projekt .
Kliknij Dodaj Firebase do aplikacji na Androida i postępuj zgodnie z instrukcjami instalacji.
Po wyświetleniu monitu wprowadź nazwę pakietu aplikacji .
Ważne jest, aby wprowadzić nazwę pakietu używanego przez aplikację; można to ustawić tylko po dodaniu aplikacji do projektu Firebase.Na koniec pobierz plik
google-services.json. Możesz pobrać ten plik ponownie w dowolnym momencie. (ten plik znajduje się w ustawieniach projektu w konsoli Firebase).Przełącz Android studio View na Project i wklej plik google-service.json w folderze aplikacji
Następnym krokiem jest dodanie zestawu SDK w celu zintegrowania bibliotek Firebase z projektem.
Dodaj zestaw SDK
Aby zintegrować biblioteki Firebase z jednym ze swoich projektów, musisz wykonać kilka podstawowych zadań, aby przygotować projekt Android Studio. Być może już to zrobiłeś w ramach dodawania Firebase do swojej aplikacji.
- Dodaj reguły do pliku
build.gradlepoziomie głównym, aby dołączyć wtyczkę usług Google :
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
Następnie w swoim pliku Gradle modułu (zwykle w app/build.gradle ) dodaj linię wtyczki Apply na dole pliku, aby włączyć wtyczkę Gradle:
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:9.4.0'//THIS IS FOR ANALYTICS
compile "com.google.firebase:firebase-database:11.0.2"
}
// BELOW STATEMENT MUST BE WRITTEN IN BOTTOM
apply plugin: 'com.google.gms.google-services'
Uwagi:
Nie można odczytać / zapisać danych bez uwierzytelnienia. Jeśli chcesz bez uwierzytelnienia. Zmień reguły w konsoli bazy danych bazy danych.
{„rules”: {„.read”: true, „.write”: true}}
Dodaj pozwolenie na dostęp do Internetu w Manifeście
Zaktualizuj usługi Google Play i repozytorium Google
Zapisywanie prostej wartości do bazy danych
Najpierw zakończ instalację i konfigurację, aby połączyć aplikację z Firebase. Następnie z dowolnego miejsca w klasie możesz napisać:
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Napiszę Hello, Wold! do węzła message , jak pokazano poniżej:
"your-project-parent" : {
"message" : "Hello, World!"
}
Wyjaśnienie
FirebaseDatabase database = FirebaseDatabase.getInstance();
Powyższy kod przypisze instancję FirebaseDatabase do obiektu database do dalszego wykorzystania.
DatabaseReference myRef = database.getReference("message");
myRef kod będzie odwoływał obiekt myRef do myRef "message" rodzica twojego projektu (w tym przykładzie jest to "your-project-parent" ). Jest to więc "your-project-parent/message"
myRef.setValue("Hello, World!");
Powyższy kod ustawi "Hello, World!" do ścieżki, do której odwołuje się myRef
Automatycznie mapuj niestandardowy model do struktury danych
Po ustawieniu kilku danych w bazie danych i uzyskaniu struktury składającej się z kilku takich węzłów;
"user" : {
"-KdbKcU2ptfYF2xKb5aO" : {
"firstName" : "Arthur",
"lastName" : "Schopenhauer",
"userName" : "AphorismMan",
"phone" : "+9022-02-1778",
"gender": "M",
"age" : 25
},
"-KdbQFjs9BDviuqQVHjY" : {
"firstName" : "Werner",
"lastName" : "Heisenberg",
"userName" : "whereAmI",
"phone" : "+9005-12-1901",
"gender": "M",
"age" : 75
}
}
możesz kategoryzować struktury danych.
Tworzenie klasy
Utwórz klasę modelu, aby ustawić ją w bazie danych.
@IgnoreExtraProperties
public class User {
public String firstName;
public String lastName;
public String userName;
public String phone;
public String gender;
public int age;
public User() {
}
public User(String firstName, String lastName, String userName, String phone, String gender, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.userName = userName;
this.phone = phone;
this.gender = gender;
this.age = age;
}
}
Kilka rzeczy do zapamiętania podczas tworzenia klasy modelu, którą chcesz zmapować na swoje dane:
- Musisz mieć pustego konstruktora
- Zakres zmiennych / pól musi być publiczny, aby DataSnapshot powracający z bazy ogniowej mógł uzyskać dostęp do tych pól. Jeśli tego nie zrobisz, gdy chcesz uzyskać dane, DataSnapshot nie może uzyskać dostępu do Twojego modelu w trybie wywołania zwrotnego, co spowoduje wyjątek.
- Nazwy zmiennych / pól powinny pasować do nazw w twojej strukturze danych.
Wysyłanie do Firebase
Utwórz obiekt użytkownika
User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
i odniesienie
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Teraz masz odniesienie do swojej bazy danych. Utwórz węzeł user pomocą databaseReference.child("user") . Jeśli wykonasz .push() twoje modele zlokalizują się pod losowo utworzonymi unikalnymi identyfikatorami, takimi jak powyżej, "-KdbKcU2ptfYF2xKb5aO", "-KdbQFjs9BDviuqQVHjY" .
databaseReference.child("user").push().setValue(user, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getActivity(), "User added.", Toast.LENGTH_SHORT).show();
}
});
Jeśli chcesz ustawić swoje dane pod określonym kluczem, zrób to za pomocą .child("yourSpecificKey") zamiast .push() .
databaseReference.child("user").child("yourSpecificKey").setValue(user,...