firebase-databaseAan de slag met firebase-database


Opmerkingen

Deze sectie biedt een overzicht van wat firebase-database is en waarom een ontwikkelaar deze mogelijk wil gebruiken.

Het moet ook alle grote onderwerpen in de firebase-database vermelden en een link naar de gerelateerde onderwerpen bevatten. Omdat de documentatie voor firebase-database nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Platform SDK Versie Publicatiedatum
Firebase 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
Firebase Admin Java SDK 4.1.2 2017/02/14

Voeg Firebase toe aan uw Android-project

Hier de stappen die nodig zijn om een Firebase-project te maken en te verbinden met een Android-app.

Voeg Firebase toe aan uw app

  1. Maak een Firebase-project in de Firebase-console en klik op Nieuw project maken .

  2. Klik op Firebase toevoegen aan uw Android-app en volg de installatiestappen.

  3. Voer desgevraagd de pakketnaam van uw app in .
    Het is belangrijk om de pakketnaam in te voeren die uw app gebruikt; dit kan alleen worden ingesteld wanneer u een app toevoegt aan uw Firebase-project.

  4. Op het einde download je een google-services.json bestand. U kunt dit bestand op elk gewenst moment opnieuw downloaden. (dit bestand bevindt zich onder projectinstelling in Firebase-console).

  5. Schakel android studio View naar Project en plak het google-service.json-bestand onder de app-map

De volgende stap is het toevoegen van de SDK om de Firebase-bibliotheken in het project te integreren.

Voeg de SDK toe

Om de Firebase-bibliotheken in een van uw eigen projecten te integreren, moet u enkele basistaken uitvoeren om uw Android Studio-project voor te bereiden. Mogelijk hebt u dit al gedaan als onderdeel van het toevoegen van Firebase aan uw app.

  1. Voeg regels toe aan uw root-level build.gradle bestand om de plug-in google-services op te nemen :
buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:3.1.1'
    }
}
 

Voeg vervolgens in uw module Gradle-bestand (meestal de app/build.gradle ) de regel voor de plug-in toepassen onderaan het bestand toe om de plug-in app/build.gradle te schakelen:

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'
 

Opmerkingen:

  • Gegevens kunnen niet worden gelezen / geschreven zonder authenticatie. Als u het wilt zonder authenticatie. Wijzig de regels in de database firebase console.

    {"rules": {".read": true, ".write": true}}

  • Voeg internetrechten toe in Manifest

  • Upgrade Google Play Services en Google Repository

Aangepast model automatisch toewijzen aan gegevensstructuur

Nadat u een paar gegevens in de database hebt gezet en een structuur krijgt die bestaat uit verschillende knooppunten zoals deze;

"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
    }
  }
 

u kunt gegevensstructuren categoriseren.

Klasse creëren

Maak een modelklasse om in te stellen op 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;
    }
}
 

Enkele dingen om te onthouden bij het maken van een modelklasse die u aan uw gegevens wilt toewijzen:

  1. Je moet een lege constructor hebben
  2. Het bereik van variabelen / velden moet openbaar zijn, zodat de DataSnapshot die terugkeert vanuit de firebase toegang heeft tot deze velden. Als u dat niet doet, heeft DataSnapshot geen toegang tot uw model als u gegevens wilt ophalen en dat zal een uitzondering veroorzaken.
  3. De namen van variabelen / velden moeten overeenkomen met die in uw gegevensstructuur.

Verzenden naar Firebase

Maak een gebruikersobject

User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
 

en referentie

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
 

Nu heb je de referentie van je database. Maak een user met databaseReference.child("user") . Als u .push() uw modellen gevonden onder willekeurig gemaakte unieke id's zoals hierboven, "-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();

            }
        });
 

Als u uw gegevens onder uw specifieke sleutel wilt instellen, doet u dit met .child("yourSpecificKey") plaats van .push() .

databaseReference.child("user").child("yourSpecificKey").setValue(user,...

Eenvoudige waarde in database schrijven

Voltooi eerst de installatie en configuratie om uw app met Firebase te verbinden. Vervolgens kunt u overal in uw klas schrijven:

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");
 

Het zal Hello, Wold! schrijven Hello, Wold! in message , zoals hieronder te zien:

"your-project-parent" : {
    "message" : "Hello, World!"
}
 

Uitleg

FirebaseDatabase database = FirebaseDatabase.getInstance();
 

Bovenstaande code wijst FirebaseDatabase instantie toe aan het database voor verder gebruik.

DatabaseReference myRef = database.getReference("message");
 

Bovenstaande code verwijst naar het myRef object in "message" child van de ouder van uw project (in dit voorbeeld is dit "your-project-parent" ). Het is dus "your-project-parent/message"

myRef.setValue("Hello, World!");
 

Bovenstaande code zal "Hello, World!" in het pad waarnaar wordt verwezen door myRef