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

  1. Utwórz projekt Firebase w konsoli Firebase i kliknij Utwórz nowy projekt .

  2. Kliknij Dodaj Firebase do aplikacji na Androida i postępuj zgodnie z instrukcjami instalacji.

  3. 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.

  4. 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).

  5. 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.

  1. Dodaj reguły do pliku build.gradle poziomie 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:

  1. Musisz mieć pustego konstruktora
  2. 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.
  3. 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,...



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow