AtB-AS / webshop

AtB Webshop / AtB Nettbutikk
https://nettbutikk.atb.no
European Union Public License 1.2
0 stars 1 forks source link

[Feature] Konfigurasjon hentes fra Firestore #437

Closed gorandalum closed 2 years ago

gorandalum commented 2 years ago

Bakgrunn

Konfigurasjon og referansedata har i hovedsak blitt lagt i Remote Config. Dette ble etablert før vi tok i bruk Firestore i prosjektet. Konfigurasjon som ikke behøver å endre seg basert på os, versjon, invitasjonskoder, eller lignende, passer bedre inn i Firestore. Dette vil også løse #390 siden Remote Config ikke virker i private browsing på Firefox.

Løsning

Flytt konfigurasjon fra Remote Config til Firestore. Det er gjort for:

Det er bare implementert å ta i bruk Firestore for disse verdiene for webshop, mittatb-app bør også gjøre tilsvarende etter hvert. Må da huske at verdiene ikke kan fjernes fra Remote Config fordi de må være tilgjengelig for eldre versjoner av appen.

Testing

I webshop brukes alle konfigurasjonene nevnt over utenom preassigned_fare_products og modes_we_sell_tickets_for. For å teste at verdier fra Firestore brukes og fungerer kan man:

Denne testingen bør foregå i staging, og man bør notere seg hvilke endringer man gjør slik at man etterpå får endret tilbake til slik det var før.

Det er også oppdatert Firestore i prod til å inneha samme data som Remote Config i prod. Det er viktig at dette har blitt gjort korrekt, så test-steget bør også inneholde å verifisere disse dataene.

mikaelbr commented 2 years ago

Dette er også en breaking change som påvirker webshop NFK. Må flytte data fra Remote Config til Store.

cc FYI @toretefre

mikaelbr commented 2 years ago

Dette får vel også konsekvenser med at det ikke er cachet lokalt? Dvs man laster ned alle produkter og kartdata hver gang man laster siden på nytt fremfor å hente fra cached IndexDB? Eller blir også firestore mellomlagret?

gorandalum commented 2 years ago

Ved lasting av nettsiden så blir data hentet fra server ja. Det er mulig å slå på offline persistence, som gjør at den mellomlagrer data som den fallbacker til ved manglende nett. Dette er slått på i appen, og gjør at brukeren får opp siste hentede fare contracts likevel om device er offline. Jeg har ikke skrudd det på på nettsiden nå siden det ikke var slått på for fare contracts eller brukerprofil, som vi også henter fra Firestore.

mikaelbr commented 2 years ago

For nå hentes vel komplette store fare contracts hver gang man åpner også. Uansett om de trengs eller ikke og til all tid bakover. Unngår sikkert meste av data med å kun ha periodebillett og klippekort her, men det er vel noe filtrering på enkeltbilletter som skjer på klientsiden som ikke kommer til å være kjempesmart når app kobles på som alternativ reisebevis. Litt på siden av dette issuet kanskje, men det er noe jeg tenker burde vurderes.

gorandalum commented 2 years ago

Ja, enig. Jo lenger dette er i produksjon, jo flere billetter får folk, og vi bør passe på datamengden.

Jeg kan også nevne et par punkter til som har gjort at vi har gjort endringen fra Remote Config til Firestore:

tormoseng commented 2 years ago

Testet OK!

@mikaelbr @toretefre Tester dere på deres side også?

mikaelbr commented 2 years ago

Ja, umiddelbart ser det bra ut, men jeg tror det er introdusert en bug med at kjøpte billetter ikke blir oppdatert i oversikten.