Firebase Authentication get mobile app users - android

How to export users who have downloaded the mobile apps?
Firebase can export the list of Authenticated users but there seems to be no built-in way to get the users who have downloaded the mobile apps:
https://firebase.google.com/docs/cli/auth
-- My specific use case --
I want to give a free purchase ticket only to the first 5000 +- users who have downloaded the apps.

Firebase Authentication has no built-in way to track from what platform a user accesses your app.
The closest I can think of is to set the user's ID in Google Analytics for Firebase, and track the platform there.
The alternative would be (as Joshua commented) to have the native apps write a for for each user to a database (like the Realtime Database or Cloud Firestore). If you choose this approach, you'll have to find a way to secure that write though. Here too Firebase doesn't have anything built in to only allow writes from certain platforms, so it's up to you to come up with a security scheme.

Related

Google In App Purchases (Cross platform recurring subscriptions)

We are developing an education app (a Progressive Web App), which will work as a freemium app. Users will have the choice to pay a 5-10 USD subscription to gain access to the ad-free premium version.
However, we are also giving users the ability to access their profiles on both web and android. With this, there is a confusion as to how to implement the google pay system.
For example, if a user wants to upgrade within Android (we will be paying Google 30% off the revenue),
However, how does it work when a user who has already paid through our website (through stripe or visa/master) wants to now use the app to access the premium content he has already paid for.
What are the possible solutions that I can implement?
I don't know how your API is working in the backend but one thing is sure you have saved all the users subscription in the database.
You can pass some key-value in API response at client side(Android app). On behalf of that API, you can make decisions about what to show in the app.
Get some request body from android (mainly User Id) when they are calling the API and make the decision on that basis of that and deliver the data...

App to Access Google Analytics

I am a bit lost on whether it is possible to create an App with Google that will be able to access Google Analytics data of a GA user who permits the app access. Note that I am not looking to access my own data, but data for a number of clients who want to utilize the app to download their Google Analytics reports. Here is what I am looking to accomplish as an end results:
User logs into website
User is asked to approve app access to GA data with a form/button
User approves the access (or gives the app a Token, not sure about the workflow)
The app queries Google Analytics data on user's behalf and shows him the report
Can this be done and how? Could one create a google app, go through the App Review process and then have a working solution to for multitude of clients/customers who can use my app to download the reports?

Store app settings on a cloud

For my android app, I would like to store some app user files in a cloud. The user shall be able to upload any content created before to a cloud, by easy logging in with any valid account facebook, twitter, openID account, etc.
I realized that already with a OpenId Connect example. What cloud possibilites do I have? I think Google offers something appropiate?
Answering from the Google App Engine prospective only, assuming you're willing to write a GAE app. Other options are likely available as well, but I opted for GAE.
A variety of storage options are available to store your user data, some may be more appropriate than others depending on the type of data and your preferences. Comparison between storage options available here.
A variety of user authentication methods are available, some may be more appropriate than others depending on you app requirements and your preferences, see: What is the difference between Google identity toolkit, Google OAauth and Google+ sign in

Syncing app data to Google Account

How exactly does one use the Google account sign in feature in Android Apps?
For example, is it possible to store application data such as tables, shared preferences etc., to a google account from an Android app, and what advantages does this offer over a normal account creation feature inside an app?
The reason I ask is that in the app I plan to develop, it will contain an sqlite database to store rss urls to a user, along with shared preferences and content providers. How would the login process differ between the custom login for the app vs the Google Account login process?
I recommend using the Google Drive Android API if you want to store data to the cloud.
To use those APIs, you will need to authenticate your users using this guide.
For example, is it possible to store application data such as tables, shared preferences etc., to a google account from an Android app
The Drive API lets you save any type of file to a hidden folder on the user's Google Drive account. You could save a database, a JSON file, or whatever else you want.
what advantages does this offer over a normal account creation feature inside an app?
Here are a few advantages to allowing your user to use a Google account to sign in to your app:
Security- Google spends a lot of time and energy ensuring that Google accounts are secure. If you use Google accounts in your app, you don't need to spend time and energy making sure your custom solution is secure.
Convenience- Assuming your users are running standard Android, they are guaranteed to have a Google account already. They don't need to create a new account and they don't need to remember another password.
Access to Google APIs- If you are trying to sync to the cloud, you can use existing APIs from Google to sync data. You don't need to implement this yourself using your own servers.
If you are only doing local storage (you don't need to save to the cloud or sync between devices), then you don't need the Drive APIs, but you still get the other benefits of using a Google account.

Using paired Google accounts as your Android app login

We are planning to build an Android app which interacts with a web service. To save the users from the pain of the registration process we were thinking if we could just use the paired Google account of the device as the login key. After all, you cannot download the app from the market without having a Google account.
The requirement guidelines are (not hard requirements)
1) if the user accesses the service outside Android e.g. in web browser we can use the same login
2) if the user swaps the device, removes the app, etc. the data can be retrieved again when the user reinstalls the app
3) the user would not need to type username/password/password again combo when starting the app for the first time
What platform services Android offers for this? What kind of process it is to have an app paired with a Google Account? Any gotchas, like 2 week timeouts which Facebook prefers to do.
What's the relevant documentation and any tutorials?
Thanks!
1) The AccountManager (gdocs) allows to add and "use" (google) accounts on the device (Those that are listed in the settings). Go to 34:00 in the google io talk Android Pro Tips there small introduction. Actually all tips in this session are great.
2) With a SharedPreferencesBackupHelper the settings of your app will be backed up online and automatically restored after a device switch. The preferences are tied to a google account. This service is useful for small amounts of data - some preferences. The data is as secure as the google account or the device and I think it's not encrypted.
3) see 1)

Resources