Firestore and Datastore in the same GAE project - google-app-engine

I have a Google App Engine project and I use Datastore.
I see that under the firebase console, I also have the option to create a Firestore database.
Does this Firestore database use the underlying Datastore in the same GAE project? I'm guessing maybe it lives side by side with Datastore?
That being said, can I use Firestore and Datastore in the same project?
Let me know if I am missing something...

They are related.
But in addition to not being able to use both in the same project you should be careful if/when you decide to switch as the switch isn't reversible (or at least not yet). Take the time to dive into the documentation to make an informed decision.
From Choosing between Cloud Firestore and Cloud Datastore:
Cloud Firestore is the next major version of Cloud Datastore and a re-
branding of the product. Taking the best of Cloud Datastore and the
Firebase Realtime Database, Cloud Firestore is a NoSQL document
database built for automatic scaling, high performance, and ease of
application development.
and
Warning: Once your database option is set, you cannot switch. You can't use both Cloud Firestore and Cloud Datastore in the same
project.

You can not. From the documentation:
Cloud Firestore and App Engine: You can't use both Cloud Firestore and
Cloud Datastore in the same project, which might affect apps using App
Engine. Try using Cloud Firestore with a different project.

Related

Firestore full-text search

I'm migrating an app from GAE/J Datastore to Cloud Firestore. The app uses GAE Full Text Search service. The Firestore docs recommend using Algolia/ElasticSearch for full-text search.
Is there anything that prevents using the search service with Firestore? Why is the docs recommending external search services esp. Google being known for search
Thanks
There's nothing that prevents you from using Cloud Firestore and the App Engine Search API together; it's just also possible to use Cloud Firestore outside of App Engine, so we don't want to constrain users to any particular environment.

Beta Firebase Firestore won't work with projects using app engine

When I try to add the beta firestore to my Google cloud platform project I get the following message.
Cannot enable Firestore for this project
Currently Firestore cannot be enabled in projects already using Cloud Datastore or App Engine
Is this going to last forever?
I think I would like to replace some but not all of my datastore stuff with firestore to get realtime updates.
Perhaps firestore uses datastore and appengine in its backend?
Should I use two GCP projects to get around this problem?
Thanks,
Nathan
This is currently a technical restriction we hope to remove in the future.
Yes, currently you will need to use 2 separate GCP projects to use both Cloud Datastore and Cloud Firestore simultaneously.

I cannot enable firestore on a project although I'm not using AppEngine nor Datastore

I'm trying to activate firestore on a project on which I'm not using AppEngine nor Datastore and having this error message.
Cannot enable Firestore for this project
Currently Firestore cannot be enabled in projects already using Cloud Datastore or App Engine
To be more precise, I used to use datastore but now there is no entities in my project datastore. So maybe there is something that I need to disable explicitly
Thx in advance for your help
Unfortunately since you have previously used Cloud Datastore in that project, you cannot create a Cloud Firestore instance. Our ability to switch it currently only works if it was never used in the past.
go to the Project Settings and add Default GCP resource location:
Then try to create database

Should I Use NoSQL Datastore of Kinvey, or Google Cloud Datastore?

I'm build an android application with Kinvey platform back-end,with BusinessLogic to be based on Google App Engine - using the recent integration between Google and Kinvey -
My question is that would it be better - faster, cheaper & more effecient - to use Kinvey OOTB datastore collection, or should I implement the data model layer of the application with Google Cloud Datastore ?! and if I started with Kinvey now, would it be easy to migrate later to Google Cloud Datastore upon need ?!
Thanks
I think we'd need a bit more detail about how you're designing your application to answer this for you...
If you're using App Engine for your application logic, it stands to reason that you might want to store your data there too (this let's you do things like... offline operations on data using an App Engine module). If you do that, you'll have to write your own API handlers on App Engine to process requests from your mobile app.
Hope that helps, feel free to delete if not.

Google Cloud Datastore vs Google App Engine

I was having a look at the new Google Cloud Datastore and looks great. But there is something I could not understand... is it supposed to substitute Google App Engine Datastore? How can I use it inside GAE? What are the differences between both of them?
I have a GAE app in Java that uses 3 entities with thousands of rows each one, and I need to do joins quite often...
The cloud datastore is the App Engine datastore, for use outside App Engine. You won't get any benefit trying to use it with your App Engine app, unless you need other external apps to also have access to the data.
You certainly won't get more efficient joins. If you really need that, perhaps you should look into Cloud SQL, which is basically a version of MySQL you can use from App Engine.
They both are the same, in fact Google App Engine can use Google Cloud DataStore as one of its way to store data, the other options include Google Cloud SQL, Google Cloud Storage. You may select among these three according to the type of data you want to store and the way you want to access them.
From your question its clear that Google Cloud SQL would be right choice as no other options provide joins for retrieving results.
Cloud SQL is nothing but MySQL(the popular open source database) running on google platform. So you can perform your regular SQL-like queries to get your results.

Resources