Google Cloud Datastore access from Android - android

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.

Related

Confused about Google App Engine and Google Cloud Endpoints

I am building my mobile apps (Android and iOS). I am not sure if I understand this correctly, but it seems Cloud Endpoints allow you to develop and deploy your own APIs, while App Engine assists you in building a server application? It seems App Engine also allows you to build a web application backend that exposes REST service APIs? So it can do whatever Cloud Endpoints can do? If I use Cloud Endpoints, can my APIs interact with some kind of DB? Is there anything I can do in App Engine but cannot do in Cloud Endpoints in the context of building a REST backend for mobile apps?
I understand this question is messy.. but Google does seems to have confusing documentations there. Thanks!
App Engine is just a compute platform on which Cloud Endpoints enabled apps can run. Cloud Endpoints provides frameworks which make writing a RESTful API easier (Java, Python), while also providing features to help you manage your APIs and access them from generated client libraries. You can use Cloud Endpoints in conjunction with a database of your choosing. The Cloud Endpoints frameworks previously linked essentially make it easy to map HTTP paths to methods, which do whatever you want.
Cloud Endpoints is basically just a framework to make REST APIs on GAE. This is the part you are looking for, "...developers can use services and features available in App Engine standard environment, such as Datastore, Google Cloud Storage, Mail, Url Fetch, Task Queues, and so forth."
So to answer your question, just use Cloud Endpoints if you making an API for your Android app, it's much easier.

Uploading an SQLite database to Google App engine?

In my application I am saving user's data within an SQlite database on their device. I want to add the functionality that whenever WIFI is available the contents of the Database can be uploaded on to Google App engine's Data Store.
I want to know if this is possible? And if so, how difficult is it to implement?
Of course it's possible to do that, even more, it's an easy stuff. All you have to do is to create a web application with google app engine, than your android application sends its data to GAE. You can do that using HttpURLConnection to send your data and java servlets to intercept your requests and save your data in datastore. You can also use web services.
On GAE side, you need to create backend API using Cloud Endpoints and generate client library for Android devices. Your backend will be responsible to receive the data and save it in datastore. Another alternative will be to use Cloud Datastore API Client Library to interact with datastore directly, but endpoints is a much better option.

Google AppEngine in android

I m new to GCM do u guys please guide me for using Google App Engine.
I want to create a signup page which registers details of users on Google server
to signup and logging the account
Is it possible to do so?
Thanks
Google App Engine is a Platform as a Service (PaaS) offering that lets you build and run applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs change. With App Engine, there are no servers for you to maintain. You simply upload your application and it’s ready to go.
For using App Engine you have to first download an appropriate sdk based on your development environment
Download the Google App Engine SDK
For working on a particular language
Google App Engine Languages
Your question mentions a bunch of technologies and sounds a little confused, so I'll try to summarize these different technologies. Google Cloud Messaging (GCM) makes it possible for your Android app to register itself and for your server to broadcast messages to all registered devices. Google App Engine allows you to create a web server that serves as a backend for your Android app (or as a frontend web app) hosted on Google's cloud infrastructure. Google App Engine includes a feature called Cloud Endpoints which simplifies writing a backend for Android by automating serialization/deserialization, authentication, and auto-generating an Android client library for invoking the backend functionality. Google+ sign in allows you to provide users of your application with the ability to sign into your application with their Google+ account. Google+ sign in on the web also makes it possible to provide an opportunity to install your Android app and to persist the sign-in on the installed app.

Is it possible to use Amazon EC2 for Android syncing to cloud backend

I would like to provide syncing to cloud feature to an Android app.
I had read the tutorial at http://developer.android.com/training/cloudsync/index.html & http://android-developers.blogspot.com/2013/06/adding-backend-to-your-app-in-android.html
The examples being shown is using Google App Engine as backend storage.
I was wondering, is it possible not to tie to Google App Engine platform? For instance, using Amazon EC2?
Yes it is possible but you have to do more work on hosting a web service in EC2. Then your Android app will connect to it like this Android example. To write data instead of reading, use HTTP POST or PUT instead of GET. You would also have to implement your own user authentication.
Sure you can. Here's the Amazon AWS SDK for Android:
http://aws.amazon.com/sdkforandroid/
Yes, you will lose a little of the ease and integration of GAE, but you will gain something in flexibility. The GAE features (e.g. user authentication) tie you into Google's Android, making it harder to support Amazon or BB Android. And GAE limits you to their transactional HTTP model of communication.

Deploying database on Google Cloud Storage in Android application

In my android application I want to store images from my Android application to Google Cloud Storage. For that I'm referring to this Mobil Backend starter example. In that they have a backend database which is deployed on Google Cloud Storage, but I don't know I can deploy my own database there.
What are the steps to query the database in my android app? Please help me to implement this functionality. Can anyone suggest a tutorial or link which provides proper guidelines for using and storing DB on Google Gloud?
Thank you.
If you are writing your own App Engine application that needs to use storage, you have several options in the Google Cloud:
The Mobile Backend Starter using the Datastore API, that provides a NoSQL like datastore in the Google Cloud that your App Engine application can interact with via the Datastore API. By default you get a total of 1GB of space in the free tier, after which you have to pay per use for your storage requirements.
There is the Cloud Storage API, that allows you to save objects to Google Cloud Storage Service. This service is analogous to Amazon S3 service and you can save your data, classified into groups i.e. buckets. This is a paid service. Refer to https://cloud.google.com/products/cloud-storage/
If you prefer to deal with SQL, you can look at Google Cloud SQL, which gives you a MySQL Instance in the cloud. This is a paid service too. Refer to https://developers.google.com/cloud-sql/
Finally, if you application prefers that you use the Google Drive account of the User itself, then you can look at directly integrating with Google Drive API. Recently Google introduced good updates to their Android Drive API. https://developers.google.com/drive/android/
In all the above cases, when it comes to interacting with the App Engine application, it is advisable that you expose the Data Services via a REST like API in your App Engine application.
Using Google App Engine allows you to setup a local Datastore for testing. When you deploy your App Engine code, it will create the same Datastore on App Engine too [without the data]. Basically, if you follow the steps in the link you have mentioned it will setup Eclipse and App Engine, the App Engine service does not run inside your Android ecosystem. It can be modelled as a REST based URL server, where you can define Endpoints as mentioned here: Java GAE
As for tutorials: Default Google Docs!
I have a full app here, almost full application! Sample App

Categories

Resources