for one of my assignments I have to make an Android app and I have to use a server and a service which can be a mobile service or a web service. So I was thinking of using Firebase as it is real time and have some good features.
BUT
I want to know for the above requirements of my assignment is Firebase suitable.
Also, I have been told to submit a deployment unit, I am guessing the deployment unit in this case is the APK file. Am I right?
EDIT
In my assignment specification it says "Server deployed in the cloud and server must be micro-service or web-service or mobile-service of your choice" which made me choose Firebase. But I am confused if firebase's server is in the cloud and if it uses any of the services mentioned above :/
Yes, Firebase has great services such as Realtime Database, Analytics, Storage, Remote Config, ... which help you to build your app.
The deployment unit in Android is ".APK" file. (If you are gonna develop a library, it will be ".AAR" file (Android ARchive file))
Firebase is a cloud-based technology that permits you to make with no server-side programming. It offers features like Realtime Database, storage options, Notifications, authentication options, hosting and more and there is no server side code required. Just put in the configurations and Firebase would handle it. Firebase lets you store user information and sync data between them in realtime.
Related
I'm really sorry if this is not the right place to ask such question, please refer me where I can ask if this is not.
I'm developing an Android application and using Firebase as backend to store data. I'm new to both Firebase and Springboot. I've been told to learn to create some basic APIs in SpringBoot but I have been question why I would need to.
From what I got to know, Firebase already provides an API for querying data that I might need to transfer. What is the use of SpringBoot? I've read it provides "easy-deployable" application and handles Unit and Integration Testing.
If I use SpringBoot on top of Firebase, isn't it redundant? Are there additional advantages that I'm missing?
SpringBoot is completely independent of Firebase.
Firebase is basically a service which is provided by Google so that the developer doesn't need to do server-side coding.
SpringBoot is a framework which is generally used for the development of the server-side application.
By using firebase you need to pay google for data storage and API usage stuff. If we compare using firebase & spring-boot application in terms of costing taking same amount of data storage, the amount you need to pay for firebase is a lot more. Though this amount is justified, as you don't need to write even a single line of code for server-end and all the server connections, data storage and security is maintained by firebase.
You can learn more about firebase on it's official website - https://firebase.google.com/
If you are starting, I would recommend you to learn and use SpringBoot rather than firebase. But if your application demands a real-time database, you must go for firebase to take care of that feature.
Here is an article for your reference Reasons Not To Use Firebase
Spring Boot is not required to use Firebase SDKs on Android. The Firebase SDKs operate completely independently of any backend you control.
If you want to provide Spring Boot backend for your Android app, that's completely up to you. Or whatever backend you want. The Firebase client SDKs don't care.
I am fairly new to firebase, used its features to my projects.
Question is:
1) Can I use firebase free services for making professional apps/client work, to handle data and authentication?
2) Should I use json data hosting sites to use url for such projects(for fetching data)? or suggest me better options.
You can use Firebase for free for a certain amount of users and traffic. You can see the limits and packages here
I have been using Firebase's realtime database for some personal Android Apps and happy to use it. To implement it easily, Android Studio has an option for developers. Select Tools -> Firebase and Firebase Assistant will be prompted.
You can select any service you need to use in your app. The assistant even adds some pieces of code (such as dependencies and initialization for the service) needed to run the services you select.
I know I can start my firebase cloud functions locally by running below command.
firebase serve --only functions
But, is there any way I can point my android client app to the locally running functions when calling functions with android firebase SDK, so that I can test the real app before deploying the functions to firebase?
Changing the endpoint of a callable function using the client SDK is not currently supported. The team is aware that developers would like to do this, but it never hurts to file a feature request to help the team gauge the amount of demand for this feature.
In the meantime, you have other ways of invoking your callable locally, but not through the client SDK.
If you're just using HTTPS endpoints
Yes, use your server added and url, if your on your local network, thats the IP address of your computer running the local server - note don't forget to include the port too, e.g:
192.168.0.100:5000/endpointName
With regards to database triggers and onCall() functions (rather than HTTPS) I don't think they would work - however I don't know for sure.
also deploying to firebase can be a time consuming process using:
firebase deploy
or sometimes even
firebase deploy --only functions
However the following example would only deploy one function that you can specify, which is significantly quicker in completing.
firebase deploy --only functions:endpointName
I Hope this helps!
My Android project currently requires an authentication of some sort (mobile phone number / facebook / gmail... I haven't decided yet), frequent read/write operations from the server's db (not a big amount of data, and no images/videos), push notifications and in the future, possibly complex queries on the data stored.
I started reading about Parse and Google cloud (in google, specifically about mobile backend starter).
I can't seem to find a comparison between the two. I've read that both have relatively easy implementations, but except for the platforms (I'm using Android, so both work for me), I can't find a place that says "Parse is better at ... and Google cloud is better at ...".
So my questions are:
Can anyone please give a recommendation / reference?
Does one of the above platforms at all fit my project? (I am familiar with AWS, and would like to avoid it so I will not need to worry about stability and scalability)
Shameless plug: I'm a developer at kii.com
You can also take a look at Kii Cloud MbaaS
Among its features:
User management, including authentication using Facebook credentials.
Data management that never locks you into any schemas.
File storage and cloud backup for your app.
Push notifications so you can push messages to your users or to your
app itself with updated instructions for functionality.
Geolocation so you can offer location-based services.
Server extension to define your own business logic without managing
servers.
Android, iOS, html5 and unity support
I'm trying to use Google Cloud datastore as remote data collector of a bunch of sensors, connected via an android Smartphone.
Firstly I'm trying to make it working in standard java.
The question is if it is possible to access Datastore directly from an android App of I need to build a GAE app that interact with the datastore.
I read for a while the documentation about the google api, but it is not really clear, how to use the Oauth 2.0 protocol.
Thank You all
You can use the oath2 support built into android as long as every user of the app is an admin of your google cloud project/app engine app. If you want to allow untrusted users to upload data, you would have to use your own endpoint and authentication strategy.