Firebase Remote Config for Android Apps

Firebase Remote Config er en unik tjeneste designet for å gi deg finkorrigert kontroll over forekomster av appene dine mens de er installert på brukerenheter. Ved å bruke det, kan du på en pålitelig måte endre utseendet og oppføringene til appene dine i hele brukergrensesnittet uten å publisere oppdateringer på Google Play..

Hvis du tenker at dette kan være en sikkerhetsrisiko, la jeg forsikre deg om at Remote Config ikke lar deg eksternt injisere ny kode i appene dine. Den lar deg bare endre, gjennom Firebase-konsollen, verdiene av visse forhåndsbestemte variabler som allerede er tilstede i koden. Faktisk kan du tenke på variablene som server-sidevariabler som din app avhenger av.

I denne veiledningen viser jeg deg hvordan du bruker noen av de mest kraftige funksjonene i Remote Config i Android-apper.

1. Hvorfor bruke Remote Config?

Remote Config API er primært ment å brukes som et alternativ til enkle hardkodede verdier i appene dine. Eksempler på slike verdier kan være farger, dimensjoner, forsinkelser og etiketter.

For å bedre forstå betydningen av API-en, vurder følgende scenario: Du oppretter og publiserer en app med hardkodede verdier for skriftstørrelsen og fargen på alle etikettene. Noen dager senere forteller brukerne at de foretrekker en større skriftstørrelse og en annen skriftfarge. Fordi verdiene er hardkodede, for å endre dem, må du nå endre koden din, bygge appen igjen, gi den et nytt versjonsnummer og publisere det på Google Play. Det er mye arbeid for en så liten løsning. Videre, hvis brukerne forandrer seg, må du gjøre det igjen!

Med Firebase Remote Config kan du gjøre fontstørrelsen og fontfargen eksternt konfigurerbare variabler, og bruk Firebase-konsollen til å raskt endre verdiene når som helst du vil, så mange ganger du vil. Denne moderne tilnærmingen sikrer også at endringene skjer så snart som mulig på enhetene til alle brukerne, uten at de må laste ned noen oppdateringer manuelt..

2. Prosjektoppsett

Med Android Studio's Firebase Assistant, legger Remote Config til prosjektet ditt bare noen få klikk.

Begynn med å gå til Verktøy> Brannbase og velge Remote Config> Konfigurer Firebase Remote Config i panelet som vises. 

Deretter trykker du på Koble til Firebase knappen for å knytte Android Studio-prosjektet ditt til et Firebase-prosjekt. I dialogboksen som dukker opp, velger du Opprett nytt Firebase-prosjekt alternativet og trykk på Koble til Firebase knapp.

Etter en vellykket forbindelse, kan du trykke på Legg til Remote Config i appen din knappen for å legge til alle nødvendige avhengigheter til prosjektets Gradle-filer. Når du blir bedt om det, trykker du på Godta endringer knappen for å fullføre prosjektoppsettet.

3. Definere konfigurasjonsparametere

Alle variablene du vil kunne endre eksternt må defineres i Firebase-prosjektet som Remote Config-parametere. Så bruk en nettleser for å logge inn i Firebase-konsollen, bla nedover prosjekt oversikt seksjon for å finne Fjernkonfig kort, og trykk på Kom i gang knapp.

På velkomstskjermbildet i Remote Config-tjenesten, trykk på Legg til din første parameter knappen for å begynne å legge til variablene.

La oss definere to parametere nå: skriftstørrelse og skriftfarge. Den førstnevnte skal være et tall og sistnevnte en streng. Pass på at du tildeler rimelige standardverdier til begge.

Du bør nå kunne se de to parameterne du opprettet. Men deres verdier vil ikke være tilgjengelige for appen din, med mindre du publiserer dem. Så trykk på Publiser endringer knapp.

4. Klargjøre en layout

For å kunne bruke parameterne vi opprettet, legg til en TextView widget som viser en melding i XML-filen for aktiviteten din. Hvis du har opprettet et nytt Android Studio-prosjekt for denne opplæringen, kan du gjerne bruke "Hello World" TextView widget tilgjengelig som standard, men sørg for at du gir den et id.

Inne i onCreate () Metode for aktiviteten din, du kan nå få en referanse til widgeten ved hjelp av findViewById () metode.

val myMessage = findViewById(R.id.my_message)

5. Initialisere Remote Config

Vår app må kunne fungere riktig første gang den åpnes, selv om brukeren ikke er koblet til Internett. Derfor må den både kjenne navnene og standardverdiene til våre Remote Config-parametere. Å lage et kart for å lagre dem er en god ide.

valdeverdier = mapOf ("font_size" til 18, "font_color" til "# ff0000")

Merk at navnene og standardverdiene må være identiske med deres kolleger i Firebase-konsollen.

Vi kan nå initialisere en klient for Remote Config-tjenesten ved hjelp av mislighold kart. For å gjøre det, må du først opprette en forekomst av klienten ved å ringe getInstance () metode av FirebaseRemoteConfig klasse, og deretter passere kartet til sin setDefaults () metode.

val remoteConfig = FirebaseRemoteConfig.getInstance () remoteConfig.setDefaults (standard)

På dette tidspunktet er Remote Config-klienten klar, og vi kan begynne å bruke verdiene den leverer.

6. Bruke standardverdiene

De FirebaseRemoteConfig eksempel tilbyr noen intuitivt navngitte metoder du kan bruke til å hente verdiene av Remote Config-parametere. For eksempel kan du ringe til getDouble () metode for å hente verdier som er tall. På samme måte kan du ringe getString () metode for å hente verdier som er strenger.

Følgende kode viser deg hvordan du henter verdiene til skriftstørrelse og skriftfarge parametere.

val fontSize = remoteConfig.getDouble ("font_size") val fontColor = remoteConfig.getString ("font_color")

Når du har verdiene, er du fri til å bruke dem som du vil. For nå, la oss bruke dem til å endre utseendet til myMessage widget.

myMessage.textSize = fontSize.toFloat () myMessage.setTextColor (Color.parseColor (fontColor))

Hvis du kjører appen nå, vil du kunne se TextView widget ved hjelp av standardverdiene for parametrene for Remote Config.

7. Henter de nyeste verdiene

For øyeblikket er Remote Config-klienten bare returverdier fra kartet vi passerte til det. For å tillate det å bruke verdier det kommer fra Firebase, må vi ringe det activateFetched () metode.

remoteConfig.activateFetched ()

De activateFetched () metode, men faktisk ikke hente verdier fra Firebase. Derfor må vi ringe til hente () metode neste, som går asynkront, for å hente verdiene.

remoteConfig.fetch ()

Hvis du kjører appen på dette punktet, vil den fortsatt bruke standardverdiene. Men hvis du venter i noen sekunder, lukker du det og åpner det igjen, det vil begynne å bruke verdiene du skrev inn i Firebase-konsollen.

Vanligvis er det en god ide å la de endrede verdiene bare treffes når brukerne åpner appen neste gang. Du kan legge ved en lytter til Oppgave objekt returnert av hente () Metode og oppdatere brukergrensesnittet inne i lytteren, men brukerne kan ikke like den brå endringen.

Du kan imidlertid bruke lytteren til feilsøkingsformål.

remoteConfig.fetch (). addOnSuccessListener Log.i (TAG, "Fetched values ​​successfully")

8. Endre verdiene

For tiden samsvarer verdiene i kartet med de eksterne verdiene. For å kunne se Remote Config-tjenesten i bruk, må vi endre verdiene som vi nevnte i Firebase-konsollen. Så gå tilbake til konsollen og klikk på en av parameterne du ser i Remote Config-delen.

I dialogboksen som dukker opp, forlater Parameternøkkel feltet uendret, men endre verdien. På samme måte kan du også endre verdien til den andre parameteren.

Til slutt, sørg for at du trykker på Publiser endringer knappen slik at verdiene blir tilgjengelige for Remote Config-klienten.

Hvis du åpner appen nå, lukker den og åpner den igjen, du bør se at TextView Widget ser annerledes ut.

9. Legge til forhold til parametere

Du trenger ikke alltid å rulle ut de samme Remote Config-verdiene til alle brukerne dine. Firebase-konsollen lar deg legge til forhold til parametrene dine slik at de returnerer forskjellige verdier til forskjellige delsett av brukerbasen din. Det er mange regler du kan bruke til å lage slike undergrupper. Du kan for eksempel målrette mot brukere som tilhører et bestemt land, brukere med enheter som kjører en bestemt versjon av Android, eller til og med brukere som snakker et bestemt språk.

Fordi Firebase forvalter dem transparent, trenger du ikke gjøre noen endringer i koden din for å håndtere betingelsene knyttet til parametrene dine.

For eksempel, la oss legge til en betingelse for skriftfarge parameter slik at verdien bare er blå for indiske brukere.

Start med å klikke på parameteren i Firebase-konsollen. I skjemaet som vises, klikk på Legg til verdi for tilstand rullegardinfelt og velg Definer ny tilstand.

I dialogboksen som åpnes neste, vil du kunne gi et navn på din tilstand og, fra Gjelder hvis ...  rullegardinliste, velg en rekke alternativer som lar deg fokusere på en bestemt gruppe brukere. For å målrette mot brukere av et bestemt land må du velge Land / Region alternativ. I listen som vises ved siden av det, kan du velge ett eller flere land. Velge India her.

Når du har fylt alle feltene, trykker du på Opprett tilstand knappen for å fullføre tilstanden.

På dette punktet vil parameteren kunne akseptere to verdier i stedet for en. Forlate Standardverdi feltet som det er og skriv inn heksekoden for fargen blå i feltet med betinget verdi.

Hvis du publiserer endringene nå, vil brukere i India motta en ekstra oppdatering, og teksten i TextView widgeten vil vises blå til dem.

Konklusjon

Nå vet du hvordan du fjerner en app eksternt ved å bruke Firebase Remote Config og Firebase-konsollen. Med litt kreativitet er det mye du kan gjøre med tjenesten for å forbedre appens brukeropplevelse. For eksempel bruker de fleste utviklere i dag den til å endre temaene i appene sine for å markere festlige dager. Mange bruker også den med Firebase Analytics til å kjøre A / B-tester på deres brukerbaser.

Hvis du vil vite mer om Remote Config, kan du se den offisielle dokumentasjonen.