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 answers
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
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in GOOGLE-APP-ENGINE
- Deployment through app engine, cloud sql database, problem connecting with server code, doesn't connect
- Jetty 12 idle timeout limited to 30 seconds when upgrading to Java 21 in Google App Engine Standard Environment
- Unable to deploy to GAE from Github Actions
- Migrating Google App Engine - Eclipse Java 8
- How to use Oauth in order to log‑in on .googleapis.com on almost any arbitrary endpoints domains from the web browser?
- Running gcloud app deploy and getting PERMISSION_DENIED 'compute.regions.get', despite having Owner and Compute admin permissions
- Spring security CORS configuration not working after deploying to App Engine
- Google App Engine: manual scaling with one instance suddenly created multiple instances
- gcloud.app.deploy Error Response: [13] Failed to create cloud build: invalid bucket
- gcloud.app.deploy Error Response: [13] default Cloud Build service account or user-specified service account does not have access to the bucket
- GCP Java dev_appserver Can't make API call memcache.Get in a thread that is neither the original request thread nor a thread created by ThreadManager
- How to correlate and aggregate logs in Google App Engine Python 3?
- App Engine Python3 db / ndb & eventual consistency
- How do I connect to Google Cloud mySQL from App Engine using Django-Environ?
- How to deploy my fast api with llama 2 on app engine
Related Questions in PARENT
- Container Inset box-shadow over child image
- How to Get Parent node path for Child node in Inner JSON structure for Java?
- addclass also to parents
- How to Remove slug from Custom Post type created from Custom Post Type UI WordPress plugin?
- Optionally reference parent struct
- Debugging parent class constructor
- how to save entity with parent in gorm
- Import struct from main package into another package in golang
- Create a parent React project (Shared)
- How to access super function when overriding a function using a function passed as a parameter in Javascript?
- TCL top level disabling parent window not working in OpenSuse
- Ionic bind class or variable to dynamically created scroll DIV wrapper
- How to find ultimate parent
- What is parent directory of a process?
- Get the Window for a JMenuItem?
Related Questions in DATASTORE
- Datastore writes failing with google.api_core.exceptions.PermissionDenied: 403 Received http2 header with status: 403
- Save User Id in data storage in all table
- I can't add datapusher-plus to my CKAN in docker
- How to write unit test cases for the DataStore saving and fetching method
- Is there a way to set the minimum and maximum value of a DataStore Preferences value?
- Android Jetpack Datastore get one stored vďlue
- Using DataStore in ViewModel not properly saving and retrieving data
- datastore not working when we declare intent route to a page containing datastore in DialogFlow CX
- Saving 2 player values in a Roblox leaderboard
- Android Studio: Kotlin - How to read and edit DataStore Values in another Activity
- My coworker accidentally deleted a production google cloud datastore , is there a way to recover it
- GAE migrate Java 8 to Java 11; has the data type "Text" done away with?
- How to keep track of changes to Android datastore if file is deleted while app is running
- How to maintain the proper lifecycle of RxDataStore<Preferences> In Multiple Activities In Android
- Shared Preferance in flutter
Related Questions in ANCESTOR
- How to match ancestor-or-self for contains Xpath?
- LogicException: The selected node does not have a form ancestor
- Shopware App - "Refused to frame 'https://***.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors
- How to add class to current and parent menu items if menu contains pages and categories that have the same ID?
- Get ancestors of all nodes in a graph
- How to get a predecessors/ancestor list of a node from cyclic directed graph in python?
- XSLT sum of multiplication with ancestor
- XPath test if any ancestor has a specific child element
- How to locate the grandparent of elements using Selenium (Python) in a loop
- Need to identify the ancestor of the mentioned web element
- Ancestor of a comment object
- After upgrading to flutter 2.10: appears widget's ancestor is unsafe
- Does git rebase ever require a common commit ancestor?
- SVN ancestrally related error on a single directory
- How do I change a &Path's first ancestor in Rust?
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?
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)
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.