I currently have an Android app which uses 3 SQLite database tables and I want to store this data on the cloud in my Java-based GAE app. It will be used as backup and also, the user will be able to view it in their browser upon logging in. The user is entering data into the Android app so all the data in the 3 tables belongs to that user. Is there a recommended way of storing this type of user-specific data? Should I store user email with each entity in order to identify it or have a User entity as the parent and all the entities belonging to this user as the children? Are there any advantages of using a parent in this case?
How to store user-specific data from Android in Google App Engine Datastore. Ancestor or not?
522 Views Asked by nadajp At
2
There are 2 best solutions below
0
Ojonugwa Jude Ochalifu
On
My two cents.Unlike Sqlite,Google App Engine is not a relational database so saving your SQlite data to GAE won't be a straightforward task.However, you could create an app on GAE where you use the useremail from ur app as the Entity key.You can then retrieve the user specific info based on this key.All(well,the most important thing)you need to do in this case is find a way to send that data from your app to GAE.
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in GOOGLE-APP-ENGINE
- AngularJS, Google App Engine and URLrewrite
- Optimizing for Social Leaderboards
- Getting entity with a join table GAE
- Custom exception message from google endpoints exception
- Unable to deploy an application module on AppEngine
- How to use CachedRowSet in Google App Engine?
- How can I create a docker image from the current system?
- Google datastore multiple values for the same property
- Google Cloud Storage sort directory by name
- Adding custom domain for Google App Engine WordPress site
- Arguments to Endpoints method change order
- Could someone bring Google OAuth2 for Cloud DNS via Rest to light?
- DNS_PROBE_FINISHED_NXDOMAIN on Google App Engine website
- GAE python - client_secrets.json 'File not found' - app.yaml error?
- Images not working in Google App Engine email
Related Questions in PARENT
- Positioning child at bottom of parent with scroll
- Google Drive API VB.NET Parent Folder of a Folder
- settattr for parent class to use in children
- Accessing a variable in the parent AS3 script from a child script
- How do I add "Parent Reference item" to "File item List" using C#
- Add Class to parent, jquery and IE9
- how to stop Directory.CreateDirectory creating parents?
- Store checked/filled objects in a string for each panel
- Invalid commands for child process in background in C
- How to handle different event handlers with same parent?
- PHP Docblock for child using parent constructor?
- Weird behavior of parent and child in fork
- Why does this code with fork() only produce one output?
- ondrop affects target's parent
- ActionListener in parent class
Related Questions in DATASTORE
- Boltdb-key-Value Data Store purely in Go
- datapusher issue to upload a CSV into datastore
- What is the most persistent HTML5 data storage?
- BlobStore - display photo error
- Are there any data stores that can handle large number of complex lookup ids
- How to save multiple small integers in one integer via bit shifting in Objective C
- GAE datastore index not getting created
- NDB Query for Key or ID of StructuredProperty
- rails 4.1 / active record data_store hash not being initialized/serialized
- Unit test Dropbox Datastore API on Android
- Powerbuilder DataStore fail only when deployed as EXE (but succeeds as DataWindow)
- What’s the difference between a dataStore and a database?
- Sync completion call back in dropbox datastore api
- Data store fast querying over combinations of key values
- Can i use FileDataStore in AEM 6.1 with Apache Jackrabbit Oak 1.2.18 in TARMK
Related Questions in ANCESTOR
- xslt: traverse chain of ancestors in reverse order
- Find least common ancestor of two nodes in java
- Wrapping an XML element with its ancestor nodes/tags
- Find closest parent in relation to (not just contained within) a context
- What is the issue with the method acces in ancestors chain in Ruby
- How to find ancestors more than one level above
- How do I remove an attribute and an element if an ancestor's attribute holds a certain value using xsl
- Select attribute value of first node of ancestor
- AppEngine NDB: How to apply ancestors correctly?
- How to store user-specific data from Android in Google App Engine Datastore. Ancestor or not?
- LogicException: The selected node does not have a form ancestor
- How to match ancestor-or-self for contains Xpath?
- Lowest Common Ancestor implementations - what's the difference?
- Nokogiri equivalent of jQuery closest() method for finding first matching ancestor in tree
- What exactly are ancestors in DAG
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It all depends on how many records you have for a single user, how frequently these records are updated, and how you access this data (what kind of queries you need, etc.) So there is no simple and definitive answer to your question.
Most likely, you will be fine with either approach unless you have thousands of records per user and they update them every few minutes, at which point you may run into some limitations.
Note that you don't need to include an email address to identify each record. Typically, you create a user entity first, and then you use an id of this user entity (a Long) to identify all other entities that are related to this user.