Firebase Remote Config voor Android-apps

Firebase Remote Config is een unieke service die is ontworpen om u nauwkeurige controle te geven over instanties van uw apps terwijl deze op gebruikersapparaten zijn geïnstalleerd. Door het te gebruiken, kunt u het uiterlijk en het gedrag van uw apps op betrouwbare wijze binnen uw gehele gebruikersbestand aanpassen zonder updates op Google Play te publiceren.

Als je denkt dat dit een beveiligingsrisico kan zijn, kan ik je verzekeren dat Remote Config je niet de mogelijkheid geeft om op afstand nieuwe code in je apps te injecteren. Hiermee kunt u alleen via de Firebase-console de waarden van bepaalde vooraf vastgestelde variabelen wijzigen die al in de code aanwezig zijn. In feite kunt u de variabelen beschouwen als variabelen op de server waarvan uw app afhankelijk is.

In deze zelfstudie laat ik u zien hoe u enkele van de krachtigste functies van Remote Config in Android-apps kunt gebruiken.

1. Waarom Remote Config gebruiken?

De Remote Config API is voornamelijk bedoeld om te worden gebruikt als een alternatief voor eenvoudige, hardgecodeerde waarden in uw apps. Voorbeelden van dergelijke waarden kunnen kleuren, dimensies, vertragingen en labels zijn.

Raadpleeg het volgende scenario om het belang van de API beter te begrijpen: u maakt en publiceert een app met hardgecodeerde waarden voor de tekengrootte en -kleur van alle bijbehorende labels. Een paar dagen later vertellen uw gebruikers dat ze een grotere lettergrootte en een andere letterkleur verkiezen. Omdat de waarden hard gecodeerd zijn, moet u deze wijzigen om uw code te wijzigen, de app opnieuw bouwen en een nieuw versienummer geven en deze opnieuw publiceren op Google Play. Dat is veel werk voor zo'n kleine oplossing. Bovendien, als de gebruikers van gedachten veranderen, moet je het allemaal opnieuw doen!

Met Firebase Remote Config kunt u de lettergrootte en de kleur van het lettertype op afstand configureerbare variabelen maken en de Firebase-console gebruiken om snel hun waarden op elk gewenst moment, zo vaak als u wilt, te wijzigen. Deze moderne aanpak zorgt er ook voor dat de wijzigingen zo snel mogelijk plaatsvinden op de apparaten van al uw gebruikers, zonder dat ze handmatig updates hoeven te downloaden.

2. Projectinstellingen

Met de Firebase-assistent van Android Studio is het toevoegen van Remote Config aan uw project slechts een paar klikken.

Begin met naar Hulpmiddelen> Firebase en kiezen Remote Config> Firebase Remote Config instellen in het paneel dat verschijnt. 

Druk vervolgens op Maak verbinding met Firebase om uw Android Studio-project te koppelen aan een Firebase-project. Selecteer de in het dialoogvenster dat verschijnt Maak een nieuw Firebase-project optie en druk op de Maak verbinding met Firebase knop.

Na een succesvolle verbinding kunt u op de Voeg Remote Config toe aan uw app om alle vereiste afhankelijkheden toe te voegen aan de Gradle-bestanden van uw project. Druk als daarom wordt gevraagd op Wijzigingen accepteren knop om de projectinstellingen te voltooien.

3. Configuratieparameters definiëren

Alle variabelen die u op afstand wilt kunnen wijzigen, moeten in uw Firebase-project worden gedefinieerd als parameters voor Remote Config. Gebruik daarom een ​​browser om u aan te melden bij de Firebase-console, naar beneden scrol de Projectoverzicht sectie om het te vinden Remote Config kaart en druk op de Begin knop.

Druk in het welkomstscherm van de Remote Config-service op Voeg je eerste parameter toe om de variabelen toe te voegen.

Laten we nu twee parameters definiëren: lettertypegrootte en font_color. De eerste zal een nummer zijn en de laatste een string. Zorg ervoor dat u redelijke standaardwaarden toewijst aan beide.

U zou nu de twee parameters moeten kunnen zien die u hebt gemaakt. Hun waarden zijn echter niet beschikbaar voor uw app, tenzij u ze publiceert. Dus druk op de Wijzigingen publiceren knop.

4. Een lay-out voorbereiden

Gebruik a om de parameters die we hebben gemaakt te kunnen gebruiken Tekstweergave widget die een bericht weergeeft in het XML-bestand van uw activiteit. Als u voor deze zelfstudie een nieuw Android Studio-project hebt gemaakt, kunt u de "Hello World" gebruiken Tekstweergave widget standaard beschikbaar, maar geef het een ID.

Binnen in de onCreate () methode van uw activiteit, kunt u nu een verwijzing naar de widget krijgen met behulp van de findViewById () methode.

val myMessage = findViewById(R.id.my_message)

5. Remote Config initialiseren

Onze app moet correct kunnen werken wanneer hij voor de eerste keer wordt geopend, zelfs als de gebruiker geen verbinding met internet heeft. Daarom moet het zowel de namen als de standaardwaarden van onze Remote Config-parameters kennen. Het is een goed idee om een ​​kaart te maken om ze op te slaan.

val defaults = mapOf ("font_size" tot 18, "font_color" tot "# ff0000")

Houd er rekening mee dat de namen en standaardwaarden identiek moeten zijn aan hun tegenhangers in de Firebase-console.

We kunnen nu een client voor de Remote Config-service initialiseren met behulp van de defaults kaart. Hiertoe maakt u eerst een instantie van de client door de getInstance () methode van de FirebaseRemoteConfig klasse, en geef de kaart vervolgens door aan zijn setDefaults () methode.

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

Op dit moment is de Remote Config-client gereed en kunnen we de waarden gebruiken die hij levert.

6. De standaardwaarden gebruiken

De FirebaseRemoteConfig instance biedt enkele intuïtief benoemde methoden die u kunt gebruiken om de waarden van Remote Config-parameters op te halen. U kunt bijvoorbeeld de getDouble () methode om waarden op te halen die getallen zijn. Evenzo kunt u bellen met getString () methode om waarden op te halen die strings zijn.

De volgende code laat zien hoe de waarden van de te halen lettertypegrootte en font_color parameters.

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

Zodra u de waarden heeft, bent u vrij om ze te gebruiken zoals u dat wilt. Laten we ze nu gebruiken om de looks van de. Te veranderen mijn bericht widget.

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

Als u de app nu uitvoert, kunt u de Tekstweergave widget met behulp van de standaardwaarden van de Remote Config-parameters.

7. De nieuwste waarden ophalen

Op dit moment retourneert de Remote Config-client alleen waarden van de kaart die we hebben doorgegeven. Om het toe te staan ​​om waarden te gebruiken die het van Firebase krijgt, moeten we het bellen activateFetched () methode.

remoteConfig.activateFetched ()

De activateFetched () methode haalt echter feitelijk geen waarden uit Firebase. Daarom moeten we de ophalen () volgende methode, die asynchroon wordt uitgevoerd, om de waarden op te halen.

remoteConfig.fetch ()

Als u de app nu uitvoert, worden de standaardwaarden nog steeds gebruikt. Als u echter enkele seconden wacht, sluit u deze en opent u deze opnieuw, dan worden de waarden gebruikt die u hebt ingevoerd in de Firebase-console..

Gewoonlijk is het een goed idee om de gewijzigde waarden alleen van kracht te laten worden wanneer de gebruikers de app de volgende keer openen. Je zou een luisteraar kunnen hechten aan de Taak object geretourneerd door de ophalen () methode en werk uw gebruikersinterface bij in de luisteraar, maar uw gebruikers houden mogelijk niet van de abrupte wijziging.

U kunt de luisteraar echter gebruiken voor foutopsporingsdoeleinden.

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

8. De waarden wijzigen

Momenteel komen de waarden op de kaart overeen met de afstandswaarden. Om de Remote Config-service in actie te kunnen zien, moeten we de waarden wijzigen die we in de Firebase-console hebben genoemd. Dus ga terug naar de console en klik op een van de parameters die u ziet in het gedeelte Remote Config.

Blader in het dialoogvenster dat verschijnt Parametersleutel veld ongewijzigd, maar verander de waarde. Op dezelfde manier kunt u ook de waarde van de andere parameter wijzigen.

Tot slot, zorg ervoor dat u op de Wijzigingen publiceren zodat de waarden beschikbaar worden voor de Remote Config-client.

Als u de app nu opent, sluit en weer opent, moet u dat zien Tekstweergave widget ziet er anders uit.

9. Voorwaarden aan parameters toevoegen

U hoeft niet altijd dezelfde Remote Config-waarden uit te rollen voor al uw gebruikers. Met de Firebase-console kunt u voorwaarden aan uw parameters toevoegen, zodat deze verschillende waarden retourneren naar verschillende subsets van uw gebruikersbestand. Er zijn veel regels die u kunt gebruiken om dergelijke subsets te maken. U kunt bijvoorbeeld gebruikers targeten die tot een bepaald land behoren, gebruikers met apparaten met een specifieke Android-versie of zelfs gebruikers die een specifieke taal spreken.

Omdat Firebase ze op een transparante manier beheert, hoeft u geen wijzigingen aan te brengen in uw code om de voorwaarden te behandelen die aan uw parameters zijn gekoppeld.

Laat ons voor het belang van een voorbeeld nu een voorwaarde toevoegen aan de font_color parameter zodanig dat de waarde ervan alleen blauw is voor Indiase gebruikers.

Begin door op de parameter in de Firebase-console te klikken. Klik in het formulier dat verschijnt op Voeg waarde toe voor voorwaarde drop-down veld en selecteer Definieer een nieuwe voorwaarde.

In het dialoogvenster dat hierna wordt geopend, kunt u een naam geven aan uw conditie en, vanaf de Geldt als ...  vervolgkeuzelijst selecteert u een aantal opties waarmee u zich op een specifieke groep gebruikers kunt concentreren. Als u gebruikers van een specifiek land wilt targeten, moet u de Land / Regio keuze. In de lijst die ernaast staat, kunt u een of meer landen kiezen. Kiezen Indië hier.

Als u alle velden hebt ingevuld, drukt u op Maak een voorwaarde om de voorwaarde te voltooien.

Op dit punt kan uw parameter twee waarden accepteren in plaats van één. Verlaat de Standaardwaarde veld zoals het is en typ de hex-code voor de kleur blauw in het veld voorwaardelijke waarde.

Als u de wijzigingen nu publiceert, ontvangen gebruikers in India een extra update en de tekst in de Tekstweergave widget zal blauw voor hen lijken.

Conclusie

Nu weet u hoe u een app op afstand kunt aanpassen met behulp van Firebase Remote Config en de Firebase-console. Met enige creativiteit kun je veel doen met de service om de gebruikerservaring van je app te verbeteren. De meeste ontwikkelaars gebruiken het bijvoorbeeld vandaag om de thema's van hun apps te veranderen om feestelijke dagen te markeren. Velen gebruiken het ook met Firebase Analytics om A / B-tests uit te voeren op hun gebruikersdatabases.

Raadpleeg de officiële documentatie voor meer informatie over Remote Config.