Kom i gang med Firebase for Android

Mobilapplikasjoner trenger en back-end-server for å kunne utføre oppgaver som å autentisere brukere og synkronisere brukerdata på flere enheter. Opprette en slik server krever imidlertid et ferdighetssett som de fleste uavhengige apputviklere mangler. Heldigvis finnes det flere back-end som serviceplattformer, ofte kalt BaaS, som du kan bruke i dag. Googles Firebase er en slik plattform.

Firebase tilbyr viktige tjenester som analytikk, krasjrapportering, brukerautentisering og skymeldinger uten kostnad. Dens freemium tjenester inkluderer en sanntid NoSQL database, fil hosting, og statisk web hosting.

I denne veiledningen viser jeg deg hvordan du legger til brukerautentisering, analyse og ekstern datalagring til Android-appen din ved hjelp av Firebase.

Forutsetninger

Å følge med, du trenger:

  • Android Studio 2.2 RC2 eller høyere

1. Bruke Firebase Analytics

Firebase Analytics er en av de mest populære analyseapplikasjonene for mobilapps tilgjengelig i dag. Ved å bruke det, kan du få en presis forståelse av hvem brukerne dine er og hvordan de bruker appen din.

Trinn 1: Konfigurer Firebase Analytics

De nyeste kanariefunksjonene fra Android Studio har innebygd støtte for Firebase Analytics. Det betyr at du kan legge til Firebase Analytics til prosjektet uten å måtte forlate Android Studio.

For å begynne å integrere Firebase Analytics med prosjektet, klikk på Verktøy> Brannbase. Du vil bli presentert med følgende Assistent vindu:

Klikk på Analytics og så Logg på en Analytics-hendelse.

Du må nå knytte Android Studio-prosjektet ditt med et Firebase-prosjekt. Derfor klikker du på Koble til Firebase knapp.

I dialogboksen som dukker opp, vil du kunne se alle dine eksisterende Firebase-prosjekter. Du kan enten velge en av dem eller velge å opprette et nytt prosjekt. For nå foreslår jeg at du velger Opprett nytt Firebase-prosjekt alternativ, og gi et unikt navn til prosjektet.

Når du trykker på Koble til Firebase knappen som er inne i dialogboksen, vil Android Studio automatisk gjøre alle nødvendige konfigurasjonsendringer, for eksempel å generere en google-services.json fil og last opp et SHA1 fingeravtrykk.

Du kan nå trykke på Legg til Analytics i appen din knappen for å legge til Firebase-plugin og Firebase Core-avhengigheten av prosjektet. Android Studio vil vise deg de eksakte endringene som skal gjøres til build.gradle filer.

trykk Godta endringer for å fullføre konfigurasjonen.

Trinn 2: Generer Analytics-hendelser

Når du har konfigurert Firebase Analytics for appen din, trenger du ikke skrive noen ekstra kode hvis du er fornøyd med bare de automatisk genererte analysemessige hendelsene, som for eksempel brukeren åpnet appen din for første gang, bruker den til mer enn 10 sekunder, gjør et kjøp i app eller avinstallerer appen. Derfor kan du kjøre appen din nå - på en emulator eller en ekte enhet - og i løpet av de neste 24 timene vil du kunne se analyselogger i Firebase-konsollen.

Hvis du vil analysere brukerens oppførsel nærmere, kan du generere egendefinerte analytiske hendelser manuelt ved hjelp av LogEvent () metode av FirebaseAnalytics klasse. Metoden forventer to parametere: en streng som angir navnet på den egendefinerte hendelsen, og a Bunt inneholder detaljer om hendelsen i form av nøkkelverdier par.

For eksempel, hvis du vil generere en hendelse som heter my_custom_event hver gang en bruker klikker på en bestemt knapp, må du legge til følgende kode i knappens klikkbehandler:

// Opprett en forekomst av FirebaseAnalytics FirebaseAnalytics fa = FirebaseAnalytics.getInstance (dette); // Opprett en pakke som inneholder informasjon om // analytikkhendelsen Bundle eventDetails = new Bundle (); eventDetails.putString ("my_message", "Clicked den spesielle knappen"); // Logg inn hendelsen fa.logEvent ("my_custom_event", eventDetails);

For det meste er egendefinerte hendelser skilt fra de automatisk innsamlede hendelsene i Firebase-konsollen.

Legg merke til at hendelsesnavnene er store og små bokstaver. Derfor er det en god ide å definere alle hendelsesnavnene dine som konstante strenger. Alternativt kan du bruke forhåndsdefinerte hendelsesnavnskonstanter som er tilgjengelige i FirebaseAnalytics.Event klasse.

2. Bruke Firebase Auth

Brukerautentisering er et viktig krav for de fleste Android-appene i dag. Ved å være i stand til å godkjenne brukerne dine sikkert - og dermed unikt identifisere dem - kan du tilby en tilpasset opplevelse til dem basert på deres interesser og preferanser. Du kan også forsikre deg om at de ikke har problemer med å få tilgang til deres private data mens du bruker appen fra flere enheter.

Firebase Auth lar deg autentisere brukerne dine ved hjelp av en rekke innloggingsmekanismer. I denne veiledningen viser jeg deg hvordan du lar brukerne logge på appen din ved hjelp av e-postadressene og passordene sine.

Trinn 1: Konfigurer prosjektet

For å kunne bruke Firebase Auth i Android Studio-prosjektet må du legge til følgende kompilere avhengighet til app modulens build.gradle fil.

kompilere 'com.google.firebase: firebase-auth: 9.4.0'

Trinn 2: Aktiver passordbasert godkjenning

Som standard tillater ikke Firebase brukerautentisering. Derfor må du manuelt aktivere passordbasert brukergodkjenning i Firebase-konsollen. For å gjøre det, naviger til Auth delen, og trykk på Sett inn påloggingsmetode knapp. Du vil nå se en liste over alle innloggingsleverandører som er tilgjengelige.

Velge Epost Passord, aktiver det, og trykk på Lagre.

Trinn 3: Støtte brukerregistrering

Med passordbasert godkjenning må nye brukere registrere seg ved å gi en unik e-postadresse og et passord. For å legge til denne funksjonaliteten i appen din, kan du bruke createUserWithEmailAndPassword () metode av FirebaseAuth klasse. Som navnet antyder, forventer metoden en e-postadresse og et passord som sine argumenter.

For å kunne bestemme resultatet av createUserWithEmailAndPassword () metode må du legge til en OnCompleteListener til det ved hjelp av addOnCompleteListener () metode. Følgende kodestykke viser deg hvordan du registrerer en ny bruker og forteller om registreringsprosessen ble fullført:

FirebaseAuth.getInstance () .createUserWithEmailAndPassword (emailAddress, passord) .addOnCompleteListener (ny OnCompleteListener() @Overtrid offentlig tomgang onComplete (@NonNull Task oppgave) if (task.isSuccessful ()) // Bruker registrert vellykket);

Vær oppmerksom på at det er ditt ansvar å validere e-postadresser og sørge for at brukerne bruker sterke passord.

Du kan se på e-postadressene til alle de vellykkede registrerte brukerne i brukere flipp av Firebase-konsollen Auth seksjon.

Trinn 4: Støtte brukerinnlogging

Etter en vellykket registrering, blir brukeren automatisk logget på. Brukeren fortsetter å logge på, selv om appen din startes på nytt. Ikke desto mindre må appen inneholde kode som lar brukerne manuelt logge på ved hjelp av e-postadressen og passordet de angav under registreringsprosessen.

For å signere en bruker manuelt må du bruke signInWithEmailAndPassword () metode av FirebaseAuth klasse. Metoden forventer en e-postadresse og et passord som eneste argument, og returnerer a Oppgave gjenstand. Ved å legge til en OnCompleteListener Til det kan du sjekke om påloggingen ble fullført.

For å unngå å logge på en bruker som allerede er logget på, må du ringe signInWithEmailAndPassword () metode bare hvis gjeldende FirebaseUser er null.

Følgende kodestykke viser deg hvordan du signerer en bruker i:

FirebaseAuth auth = FirebaseAuth.getInstance (); hvis (auth.getCurrentUser ()! = null) // Allerede logget inn // Ikke gjør noe annet auth.signInWithEmailAndPassword (emailAddress, passord) .addOnCompleteListener (ny OnCompleteListener() @Overtrid offentlig tomgang onComplete (@NonNull Task oppgave) if (task.isSuccessful ()) // Bruker signert med hell); 

Trinn 5: Støtte brukerinnlogging

For å signere en bruker, kan du bare ringe til Logg ut() metode av FirebaseAuth klasse.

. FirebaseAuth.getInstance () signout ();

3. Bruke Firebase's Real-Time Database

En av de mest kraftige funksjonene til Firebase-plattformen er databasen i sanntid, og det heter det med en god grunn: alle skriveoperasjoner som utføres på det, er umiddelbart tilgjengelige for alle klientene som observerer det. Med en slik database kan du opprette applikasjoner som tillater brukere å sømløst bytte fra en enhet til en annen, og også samarbeide med andre brukere umiddelbart..

Trinn 1: Konfigurer prosjektet

Før du bruker sanntidsdatabasen må du legge til følgende kompilere avhengighet av din app modulens build.gradle fil:

kompilere 'com.google.firebase: firebase-database: 9.4.0'

Trinn 2: Skriv data

Du kan tenke på sanntidsdatabasen som et JSON-objekt. Det betyr at du kan legge til nøkkelverdepar til det, hvor tastene alltid er strenger, og verdiene er enten primitiver, arrayer eller andre JSON-objekter.

Før du skriver til sanntidsdatabasen, må du få en referanse til den ved hjelp av getInstance () metode av FirebaseDatabase klasse. Du kan da få en referanse til hvilken som helst bane inne i databasen ved hjelp av getReference () metode. Banen kan inneholde enten en enkeltnøkkel eller flere nøkler ordnet hierarkisk.

Når du har en DatabaseReference til en sti, kan du sette verdien ved hjelp av SetValue () metode.

Følgende kodestykke viser deg hvordan du legger til et enkelt nøkkelverdierpar i databasen:

FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("melding"); // Nøkkelref.setValue ("Dette er en testmelding"); // Verdi

Ved å gå til database delen av Firebase-konsollen, kan du se alle dataene som er inne i sanntidsdatabasen.

Trinn 3: Les data

For å kunne lese en verdi fra sanntidsdatabasen må du knytte en asynkron observatør til den tilhørende nøkkelen eller banen. Mer presist må du legge ved a ValueEventListener til en DatabaseReference objekt ved hjelp av addValueEventListener () metode.

De onDataChange () metode av ValueEventListener gir deg tilgang til a DataSnapshot objekt, hvis getValue () Metoden kan brukes til å hente den siste verdien av nøkkelen.

For eksempel, her kan du hente verdien vi satte i forrige trinn:

FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("melding"); // Nøkkel // Vedlegg lytter ref.addValueEventListener (new ValueEventListener () @Override public void onDataChange (DataSnapshot dataSnapshot) // Hent siste verdi String message = dataSnapshot.getValue (String.class); @Overgå offentlig tomgang påCancelled ( DatabaseError databaseError) // Feilbehandling);

Legg merke til at en gang a ValueEventListener er lagt til, dens onDataChange () Metoden utløses hver gang verdien er å observere endringer.

Konklusjon

Firebase-plattformen eliminerer behovet for en back-end-server, og lar deg fokusere på å bygge bedre apper. I denne opplæringen lærte du hvordan du bruker den til å legge til analyse, brukerautentisering og sanntidslogg for datalagring i Android-appen din.

For å lære mer om Firebase, kan du se den offisielle dokumentasjonen. Du kan også sjekke ut vår veiledning om bruk av Firebase Crash Reporting i Android: