We are using Firebase to setup different toggle-able features based of whether the app is currently pointing at Beta, Staging or Live so we can test gradually without fully going live with a feature.
We do this by setting 3 conditions inside Remote Config based on how the user property 'ios_environment' is set within the app.
Inside the Development version of the app we can switch between the environments easily which calls the following code to switch which condition the app is currently running under:
Analytics.setUserProperty(environment.rawValue, forName: "ios_environment")
Which sets it to either, "beta", "staging" or "live".
What happens in the app is for a particular Remote Config parameter it only ever decides to go with whatever the Default value is and never seems to pickup on the condition that is set:
So for the Parameter in the image above, we want it to be true only for the Beta environment but it only takes whatever the Default says.
I hope I've made my issue clear, it's hard to get what is wrong across.
It's an issue that's recently fixed in v4.2.0. https://firebase.google.com/support/release-notes/ios
Is your Firebase version early than that?
Related
I want to automatically create different MSIX packages/installers for the same MAUI app, so that each one runs a specific code snippet according to a flag parameter.
The user does not have to interact with the app. An installer per flag value has to be created, an once the app is installed and the user double clicks the app icon, the specific piece of code has to be run.
So far, I've tried without success the following approach, trying to create a script that passes the possible values of the flag as installation parameters using the app installer and a protocol, and then trying to publish the different packages in a local path.
I would like to know whether that's feasible or there may be any other approach to get it done.
You can check this comment about .NET MAUI Windows target publishing/archiving.
In the article, the right way to set the MSIX is that you had to create a self-signed certificate and then You could add a couple of extra parameters to also add the sign the MSIX and then trust that cert manually.
I built a dashboard in Qlik Sense and after I published it I noticed the following error -
"Invalid sort order in properties".
When I duplicate the dashboard in order to edit it, the error drops and the data is shown correctly.
What could be the issue?
Had similar issue some time back. In my case the object was an extension and it was trying to modify (apply some patches) to the underlying object. As in your case it was working fine if the app is not published. The reason was that once the app is published you don't have the permission to modify objects that are published.
Modify objects on published apps is forbidden by default. It can be overwritten by changing one of the default security rules but personally I will not advise you to change the security rule because it will be applied to all published apps (unless you change the security rule to target only set of apps)
I have added a 'number_of_members' value to the Customer DocType via customization.
In my application I have tried several ways to update the value. However the value never updates in the webpage. I feel like I'm missing some sort of save or update or commit step.
For example I have tried:
frappe.client.set_value('Customer', '00042', 'number_of_members', 8887)
frappe.set_value('Customer', '00042', 'number_of_members', 8887)
frappe.db.set_value('Customer', '00042', 'number_of_members', 8887)
and also
customer = frappe.get_doc('Customer', '00042')
customer.number_of_members = 8887
customer.save()
In each case I can do something like frappe.get_value, or frappe.get_doc and it shows the value is set to 8887. However it never updates in the web side. This is what makes me think I'm updating some sort of cache or database transaction and I need some way to save it, but have not had any luck.
I am mostly testing this via bench console if that has any bearing on it, but I've tried a couple of the methods in my application code as well.
Relevant documentation:
Frappe Developer API - Document
Frappe Developer API - Database
Turns out the answer is to call frappe.db.commit() after making changes. If someone can point this out in the documentation so I can better understand how I'm missing stuff, I would appreciate it.
I also noticed if you try to Save something in the UI before you send frappe.db.commit() the UI will hang.
I need to create two different versions of the app.
- debug
-prod
for debug, version i need user to select the test environment before anything else begins. i need some way to know what environment user has selected and then load API endpoints config file accordingly.
what's the best way to handle this in flutter?
I have seen in some apps that for iOS, debug options are available in app settings under the standard iOS settings menu , select the app and then see those options in there.
You might want to use Flutter Flavours. As the name suggests, you can practically make flavours of the same app based on your need - debug, test, production etc. And not only API end-points, but you can also configure everything else such as app icon, different labels on the screen etc.
As suggested in this link, you can have different main.dart file for each flavour. You can read different configuration from JSON file (such as API end-point) and rest of your app will remain same. For example, see below :
This is another helpful link.
I have tested a few apps with enable-diego on Bluemix. They all broke because of this change. I could fix most, one I'm still struggling with. And none of which I actually wanted to make code changes in.
Instead of code changes being required to my apps, can I automate the mapping of the variables at container level (or any other solution)?
Not tried this but maybe you could create a user provided environment variable and set
VCAP_APP_PORT = $PORT
edit:
You can set user-provided environment variables using the Bluemix UI or using the cf set-env command.