firebase-database Tutorial
Iniziare con il database di Firebase
Ricerca…
Osservazioni
Questa sezione fornisce una panoramica del database di Firebase e del motivo per cui uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare eventuali soggetti di grandi dimensioni all'interno del database di Firebase e collegarsi agli argomenti correlati. Poiché la Documentazione per Firebase-database è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Versioni
| SDK della piattaforma | Versione | Data di rilascio |
|---|---|---|
| Firekase JavaScript SDK | 3.7.0 | 2017/03/01 |
| Firebase C ++ SDK | 3.0.0 | 2107/02/27 |
| Firebase Unity SDK | 3.0.0 | 2107/02/27 |
| Firebase iOS SDK | 3.14.0 | 2017/02/23 |
| Firebase Android SDK | 10.2 | 2017/02/15 |
| Firebase Admin Node.js SDK | 4.1.1 | 2017/02/14 |
| SDK Java di Firebase Admin | 4.1.2 | 2017/02/14 |
Aggiungi Firebase al tuo progetto Android
Ecco i passaggi necessari per creare un progetto Firebase e collegarlo con un'app Android.
Aggiungi Firebase alla tua app
Crea un progetto Firebase nella console Firebase e fai clic su Crea nuovo progetto .
Fai clic su Aggiungi Firebase all'app per Android e segui i passaggi di installazione.
Quando richiesto, inserisci il nome del pacchetto dell'app .
È importante inserire il nome del pacchetto utilizzato dalla tua app; questo può essere impostato solo quando aggiungi un'app al tuo progetto Firebase.Alla fine, scaricherai un file
google-services.json. Puoi scaricare nuovamente questo file in qualsiasi momento. (questo file si trova sotto le impostazioni del progetto nella console Firebase).Passa a Android studio View per Proietta e incolla il file google-service.json nella cartella app
Il prossimo passo è aggiungere l'SDK per integrare le librerie Firebase nel progetto.
Aggiungi l'SDK
Per integrare le librerie Firebase in uno dei tuoi progetti, devi eseguire alcune attività di base per preparare il tuo progetto Android Studio. Potresti averlo già fatto come parte dell'aggiunta di Firebase alla tua app.
- Aggiungi le regole al tuo file
build.gradlelivellobuild.gradle, per includere il plugin di google-services :
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
Quindi, nel tuo file Gradle del modulo (in genere l' app/build.gradle ), aggiungi la riga del plug-in in fondo al file per abilitare il plugin 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'
Gli appunti:
I dati non possono essere letti / scritti senza autenticazione. Se lo vuoi senza autenticazione. Modificare le regole nella console Firebase del database.
{"rules": {".read": true, ".write": true}}
Aggiungi il permesso di internet in Manifest
Esegui l'upgrade di Google Play Services e Google Repository
Scrivere un valore semplice nel database
Innanzitutto, completa l' installazione e l'installazione per connettere l'app a Firebase. Quindi da qualsiasi punto della tua classe, puoi scrivere:
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Scriverò Hello, Wold! nel nodo del message , come visto di seguito:
"your-project-parent" : {
"message" : "Hello, World!"
}
Spiegazione
FirebaseDatabase database = FirebaseDatabase.getInstance();
Sopra il codice assegnerà l'istanza di FirebaseDatabase nell'oggetto di database per un ulteriore utilizzo.
DatabaseReference myRef = database.getReference("message");
Il codice di cui sopra farà riferimento a oggetto myRef in "message" figlio del genitore del progetto (in questo esempio, è "your-project-parent" ). Quindi è "your-project-parent/message"
myRef.setValue("Hello, World!");
Sopra il codice verrà impostato "Hello, World!" nel percorso a cui fa riferimento myRef
Mappatura automatica del modello personalizzato alla struttura dei dati
Dopo aver impostato alcuni dati nel database e aver ottenuto una struttura composta da diversi nodi come questo;
"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
}
}
puoi categorizzare le strutture di dati.
Creazione di una classe
Creare una classe del modello da impostare sul database.
@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;
}
}
Alcune cose da ricordare quando si crea una classe del modello che si desidera mappare ai dati:
- Devi avere un costruttore vuoto
- L'ambito delle variabili / campi deve essere pubblico, in modo che il DataSnapshot di ritorno dal firebase possa accedere a questi campi. Se non lo fai, quando vuoi ottenere i dati, DataSnapshot non può accedere al tuo modello in callback e ciò causerà un'eccezione.
- I nomi di variabili / campi devono corrispondere a quelli nella struttura dei dati.
Invio a Firebase
Crea un oggetto utente
User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
e riferimento
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Ora hai il riferimento del tuo database. Creare un nodo user con databaseReference.child("user") . Se fai .push() tuoi modelli verranno individuati in ID univoci creati casualmente come sopra, "-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();
}
});
Se vuoi impostare i tuoi dati sotto la tua chiave specifica, fallo con .child("yourSpecificKey") invece di .push() .
databaseReference.child("user").child("yourSpecificKey").setValue(user,...