Firebase + Kotlin - bazy danych w Android

Kliknij i wspomóż mnie :)

Android

Kod wykorzystany w tym artykule pochodzi z mojej przykładowej aplikacji MVP. Repozytorium można znaleźć tutaj:

Github

Wprowadzenie

Kiedy zaczynałem moją pracę z Firebase, główny nacisk położony był na bazę danych czasu rzeczywistego (Realtime Database).

Obecnie Firebase zarządzane przez Google to platforma praktycznie do wszystkiego. Od śledzenia błędów w aplikacjach po testowanie w chmurze na wirtualnych urządzeniach.

Polecam zapoznać się z tymi funkcjami. Bardzo dużo można zautomatyzować i scentralizować.

https://firebase.google.com/

Dodanie do projektu

Dowolna usługa Firebase może zostać dodana na różne platformy. Ja z oczywistych względów pokażę implementację na Android.

Jeżeli pracujemy w Android Studio to cała robota może zostać wykonana za nas. Wystarczy wejść w Tools -> Firebase

Tam wybrać Realtime Database. Prawdopodobnie nie mamy jeszcze utworzonego żadnego projektu więc klikamy Connect to Firebase i tworzymy nowy.

Po stworzeniu klikamy na Add the Realtime Database to your app i akceptujemy.

Jeżeli wciąż jednak chcesz przejść przez konfigurację ręcznie to cały poradnik znajduje się tutaj:

Add Firebase to your Android project

Połączenie do bazy danych

Tak jak w innych podejściach obiektem, od którego wychodzimy jest połączenie.

Na obiekcie database wywołujemy operacje związane z samym projektem, a dokładniej bazą.

Z kolei na myRef operujemy na danych za pomocą różnych funkcji.

Jeżeli chodzi o referencje to najczęściej odwołujemy się do głównych gałęzi drzewa.

Zabezpieczenia

W Firebase bezpieczeństwo regulowane jest za pomocą reguł.

Określają one dostęp do odczytu i zapisu danych przez autoryzowanych i nieautoryzowanych użytkowników.

Więcej o regułach możesz poczytać tutaj:

Understand Firebase Realtime Database Rules

Pobieranie danych

W poniższym przykładzie opiszę schemat postępowania w celu uzyskania danych z bazy.

Na początku tworzę refencję do danych i listę na otrzymane informacje.

Jako, że jest to baza czasu rzeczywistego to musimy zadeklarować jakiś nasłuch zmian (listener). Ja w tym przypadku deklaruję addValueEventListener. Dodatkowo porządkowany jest on przez pole index. Takie podejście pozwala na ręczne sortowanie.

W onCancelled obsługujemy błędy, a w onDataChange pracujemy z otrzymanym rezultatem.

Iterując po wszystkich dzieciach (children) tworzę obiekty data class Topic. Jeżeli pola w bazie w pełni pokrywają się z polami w klasie nie musimy wyciągać pojedynczo danych.

Data class w Kotlinie

Na sam koniec zwracam listę za pomocą funkcji onSuccess. Uwaga: Ta funkcja jest częścią projektu MVPWithFirebase i nie jest dostępna z biblioteki Firebase.

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.