GDScript-based Firebase in Godot
A downloadable tool
I'm working on implementing a Firebase plugin for Godot. There are others that already exist, but they all require you to recompile all of Godot, and they only work on Android. This plugin is GDScript-based, so does not require a recompile (not to mention is quite a bit easier to use overall), and is cross-platform (currently, web export is unsupported, but I hope to add it in the not-too-distant future).
Features which are currently implemented:
Firebase Authentication
- Standard email/password authentication
- Anonymous authentication
Firebase Realtime Database
- Multiple listener paths, and the API shape is similar to the standard Firebase SDKs
- Filtering/querying
- Requests as fast as possible for device it's running on
I'm planning to implement many, many more Firebase features in the future, including:
Firestore
Storage
Remote Config
Dynamic Links
And more, if they ever release more REST services. :)
The plugin is entirely open-source and updated very regularly. You can find it here:
https://github.com/WolfgangSenff/GodotFirebase/
I'm asking for a small donation so I can keep this project going, but it will remain open-source forever.
Development log
- Massive update to use SSE/event-source based HTTPClientMar 09, 2019
- Firestore support semi-implementedFeb 13, 2019
Comments
Log in with itch.io to leave a comment.
I successfully got user registration working correctly with my Firebase project and your addon. However, I've been wracking my brain trying to figure out how to access the realtime database for CRUD operations. I have included the Godot SSL certs to the project, I've added test data to the realtime database, and I followed the Godot documentation for making an HTTP request with the HTTPRequest node, but nothing gets returns. Can we get a simple example on CRUD operations on the Firebase realtime database using your addon? Thank you so much!
All of that already works without the need for making your own HTTPRequests. :) That's all handled under the hood. The project has an example built-in that should show how to use that stuff. Here's a link to where I listen for chats:
https://github.com/WolfgangSenff/GodotFirebase/blob/master/Demo/Chat.gd
Here's a link to where I submit the chats to Firebase:
https://github.com/WolfgangSenff/GodotFirebase/blob/master/Demo/ChatControl.gd#L26
All the CRUD operations are handled through the Firebase.Database global. You can get references there (that's usually what you'd do - it essentially gives back the position in the database you want to point at to look for updates or send data), and access to the Auth variable.
https://github.com/WolfgangSenff/GodotFirebase/blob/master/Demo/addons/GDFirebase/Firebase.gd
Ignore Firestore and Storage for now - those are still works in progress, although I found out at I/O this year that Storage cannot be implemented because there's no REST interface. Annoying, but I guess it makes some sense, since it's primarily for sending/receiving large files.
As someone who is fairly new to all this, do I have to reauth with
Firebase.Auth.connect("login_succeeded", self, "on_login_success")
on the ready function in every script that utilizes the database? Or can I just authorize once and that's good for the entire session in the app?
Hi! I want to make extensive use of this for my own apps and games in Godot. Do you have a sample app or tutorial to get started?