firebase / firebase-js-sdk

Firebase Javascript SDK
https://firebase.google.com/docs/web/setup
Other
4.85k stars 892 forks source link

FR: support remote config #36

Closed rolele closed 5 years ago

rolele commented 7 years ago

It seems that remote config is only available in the ios, and, c++ and unity sdk. Could it be possible to implement it in the js sdk as well. I think having the A/B Testing feature using some analytics for segmentation would be very nice.

I see few project that tried to create some workaround like: cordova-plugin-firebase-remoteconfig and react-native-firestack but I think the right place is in the sdk itself.

Some people where requesting this feature last year already ( https://stackoverflow.com/questions/38321012/firebase-remote-config-feature-for-web-app-after-firebase-expansion ). What is the problem with adding this feature to the js sdk ?

jshcrowthe commented 7 years ago

@rolele I'll have to reiterate what @puf said in the SO question you listed. Specifically:

We're considering adding it in a future version, but as usual: no commitments, no timelines.

But stay tuned for future updates! As with all feature requests, make sure you are signed up for the Firebase Alpha Program.

jshcrowthe commented 7 years ago

Oops! My apologies, wrong issue!

kyle-ssg commented 7 years ago

Out of interest, what's the actual rationale for leaving out web for this feature? Seems a bit bizarre to me.

We almost ditched our internal feature flagger project for this having seen how flexible the conditions in the dashboard are - we have quite a few cross platform projects we'd love to try this on, real shame this isn't available for web.

mehrdad-shokri commented 6 years ago

anyone knows an alternative service/project to Firebase remote config?

kurisu commented 6 years ago

I agree with @kyle-ssg. All our apps are cross platform; web/android/ios, and the ability to remotely configure and A/B test across these platforms is a basic need; one we're satisfying with internal tools only because Firebase Remote Config doesn't support JS.

kyle-ssg commented 6 years ago

Not to be cheeky but since posting I've come quite a way to developing a potential opensource cross platform alternative, as I said I tend to need this a lot. I think there's a lot of crossover between this and something like launchdarkly that isn't being catered for. If people care to, I've posted a questionare to see whether it would help many people out https://docs.google.com/forms/d/e/1FAIpQLScXbn7-FgSKwU-ZfgMIvKAxKpUUoCstTuVLn54fRRKl-ry62A/viewform?usp=sf_link

kyle-ssg commented 6 years ago

Ended up open sourcing https://bullet-train.io/ - hopefully it might help some people here out :)

mehrdad-shokri commented 6 years ago

@kyle-ssg perfect, got the source on github?

kyle-ssg commented 6 years ago

@mehrdaad yup, split out into the frontend app, API and client sdks https://github.com/search?q=org%3ASolidStateGroup+bullet+train

mehrdad-shokri commented 6 years ago

Thank you, but do you provide any guide how to setup self hosted instances?

landsman commented 6 years ago

This is still problem in javascript?

IchordeDionysos commented 6 years ago

@landsman Not quite. Still no first-class support, but you can at least now access all remote config values via a REST API

landsman commented 6 years ago

@IchordeDionysos I read about this REST API but there is the problem about access to update values which you don't want to allow for public visitors on web.

dandv commented 6 years ago

I've tried to create credentials to access Firebase Remote Config data via the REST API from a browser, but got an error that "Application data cannot be accessed securely from a web browser". I don't actually care about secure access - all I want is to fetch some config values, read-only.

image

IchordeDionysos commented 6 years ago

Yeah, I guess you would need to build your own API abstraction layer which only allows reads :)

dandv commented 6 years ago

I think a read-only web API to fetch Remote Config values would be really useful, and doesn't seem that hard to implement - we should just make the current template available as a JSON string at an HTTPS endpoint. @puf, thoughts?

kostia-lev commented 6 years ago

also it would be good to add access type: 'web' for certain config. Now I see ability to add only ios and android access type

landsman commented 6 years ago

exactly!

superphil0 commented 5 years ago

bump

VladimirMakaev commented 5 years ago

What I don't understand why is this such a big ask ? This makes the most KISS solution unusable when you have a cross-platform app with a web version.

landsman commented 5 years ago

Or if you are using remote config for storage API endpoints in mobile apps and you want to do same in web app :)

developius commented 5 years ago

I'm building a Trusted Web App to target Android devices with Nuxt.js and lack of Remote Config support is a real bummer. I'm considering writing a Firebase function to retrieve them using the REST API and then call that from my app. I'd have to write the offline cache from scratch as well, which is abstracted away in the iOS/Android Firebase clients.

Would be awesome if the JS SDK supported Remote Config. It's a bit of a deal-breaker.

davireis commented 5 years ago

This is really a bummer. The REST API is write-only, so it doesn't seem to allow any workaround.

Did anyone try to wrap the c++ desktop api in a server which we could use to access the configs indirectly from the web?

IchordeDionysos commented 5 years ago

@davireis No, it is not: Here is the REST API call to retrieve the latest Remote Config values which can be used to write a wrapper for the web: https://firebase.google.com/docs/reference/remote-config/rest/v1/projects/getRemoteConfig

Also, you can use a Cloud Functions trigger to mark the cached values as stale: https://firebase.google.com/docs/functions/rc-events

IchordeDionysos commented 5 years ago

I guess this can now be closed https://firebase.google.com/docs/remote-config/use-config-web

Feiyang1 commented 5 years ago

Thanks everyone for your continued support! I know it's a long standing feature request and we have now added Remote Config support for Web!! It's available now in firebase@7.0.0!

Thanks @IchordeDionysos for the link. I will close the issue now.