USE CASE:
SETUP:
- Database with the following node: audioControl/command: “stop”
- The database itself is read/write enabled and I have been able to read/write from bubble with another plugin by zeroqode called Firebase Realtime Database: Firebase Realtime Database Plugin | Bubble
- PluginSetup: ProjectID, API KEY & Bubble Data API Key all set up, although I am not sure, if the ProjectID is correct (project ID from the project settings or URL from the realtime database view?).
PROBLEM
In the official documentation they always refer to the firestore database instead of the realtime database, although on the official plugin page it says
“Is this plugin compatible with Firebase Firestore? No, this plugin is designed specifically for Firebase Realtime Database, not Firestore.”
Even in their demo-project they seem to read data from a firestore database and not from a realtime database as far as I can tell. So I am not sure how to access the data with the Get Data action
Hi @blindedhalo,
Thanks for providing all the details and screenshots.
It seems like there’s some confusion with the Firebase Realtime Database and Firestore. The Firebase Data Sync plugin is specifically designed for Firebase Realtime Database and not for Firestore, which could be causing the issue since Firestore is often referred to in your setup.
Steps to Access Data Correctly:
- Verify the ProjectID:
- Ensure that the ProjectID you’re using corresponds to the Firebase Realtime Database project.
- You can find this in your Firebase Console under Project Settings → General → Project ID.
- Correct Configuration for Firebase Realtime Database:
- In the Get Data action, ensure you’re entering the correct:
- Main Collection: This would be your root node, e.g.,
audioControl
in your case.
- Collection: Add the path where your data is stored, for example,
audioControl/command
.
- Key: Use the correct key to fetch the data you need, such as
"stop"
or similar.
- Check the Database Reference:
- Ensure that the Path to the data is correct in the Firebase Realtime Database. The path you’re trying to access (
audioControl/command
) should match what’s set in your Firebase.
I also noticed that you reached out to us via email. To help keep everything organized and follow up more effectively, could you please stick to one communication channel? Feel free to choose whichever method is most comfortable for you - whether email or here on forum.
Let me know if you’re still having trouble or if you’d like further assistance!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

1 Like
- ProjectID
- The ProjectID is correct and so seem the APIs (check the screenshots below):
- Configuration
Just to make sure, this is my data tree in the Firebase Realtime Database I want to acces (and have been able to read/write to with the plugin Firebase Realtime Database):
On page load I started with an “Initialize Data” step with my DataLayer A and the collection “audioControl”.
After that, there are two operations I want to achiev:
-
Write “start” or “stop” to the database using the plugin Firebase Datasync and its “Write Data” step:
-
Monitor Changes in my audioControl (if the command is “stop” or “play”) with the DataLayer Updated event. I tried to do that with a custom state to define if a Howler.js plugin should play or stop an audio file:
And: Thanks a lot for your initial very detailed reply!! 
1 Like
Hi @blindedhalo,
Thank you for all the provided details and screenshots.
To help us narrow down the issue with the Firebase Data Sync Plugin, could you please provide any error messages or logs from debug mode, along with details on the expected vs. actual behavior when triggering the “Write Data” and “DataLayer Updated” steps?
This will assist the dev team in their investigation process and help resolve this issue more efficiently.
Looking forward to your reply!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

Sure thing. These are the debug screenshots, but so far I do not encounter any error messages.
1. Sender
2. Receiver
1 Like
Hi @blindedhalo,
Thank you for sharing the debug screenshots. It’s good to know no errors are encountered so far.
Based on the provided details, the workflows for “Sender” and “Receiver” appear to execute without issues, but the desired functionality (monitoring changes and triggering audio play/stop) may not be working as expected.
Some additional suggestions:
- Verify Real-Time Sync: Check if the command value change in the database is reflected immediately in the DataLayer A’s String Output. Add a breakpoint after the “Set states” step to inspect the command_state value.
- Test Audio Trigger: Ensure the Howler.js plugin is properly configured and the “Play HowlerPro 001” action executes when command_state is play. Test manually setting the state to confirm audio playback.
- Debug Timing: Run the workflow in step-by-step mode to observe if the “DataLayer Updated” event triggers promptly after the database update.
Please provide the command_state value observed in debug mode after the “Write Data” step, and confirm if the audio plays when the state is set to play.
This will help us pinpoint the issue further.
Let me know if you need assistance with additional steps!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

Hi @blindedhalo ,
Thanks for sharing the detailed use case and setup - it was really helpful for our investigation.
After reviewing the issue with our dev team, we’ve identified the cause: the Firebase Data Sync plugin is specifically designed to work with Firestore, not Firebase Realtime Database. This is why it’s unable to retrieve the audioControl
collection from your Realtime DB.
To implement your intended workflow (monitoring and retrieving the audioControl
value), we recommend continuing with the Firebase Realtime Database plugin instead - this one is built to support the Realtime DB structure you’re working with.
Also, we’ve updated our plugin documentation to clarify this distinction and help prevent future confusion:

Please feel free to reach out if you have any further questions!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

This clears a lot of confusion but it is very bad practice offering a plugin that just does not work with the database you specified. This was your claim on the “Firebase Datasync Plugin” page, which is still (!) there:
Since I still want to use the realtime update functionality of the plugin via the “data layer updated” event I switched my setup to the Firestore Database. This is my database setup that I want to monitor the changes in:
I am able to write to the database with the “Write Data” action (I see those changes in the database) and I can retreive those changes via the “Get Data” action on the receiver side. But still I am not able to configure the realtime functionality properly. This is my setup to monitor the changes in the database live:
This is my debug setting: Retreiving the database changes with a button click and playing the howler based on the string output of the Data layer. This works all fine.
Hi @blindedhalo,
Thanks a lot for the detailed follow-up and for sharing your updated setup - your thorough explanation is very helpful.
Here are a few suggestions you can use to replace that paragraph, depending on how direct or detailed you’d like to be:
If the real-time event isn’t triggering, please double-check the following from the plugin documentation:
- Ensure the Initialize Data Layer action is properly set up and runs before any “Data Layer Updated” events.
- Confirm that the collection path exactly matches the structure in your Realtime Database (case-sensitive).
- The page must remain open and connected - Realtime updates won’t trigger if the Data Layer is reinitialized or disconnected.
Please give these steps a try and let us know if the issue persists.
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

I am not quite sure how the Initialize Data Layer action should be set up in any other way? I set it to “page is loaded” and then put my Initialize Data Layer. How could the “Data Layer Updated” event be triggered in any other way that just setting it up like shown above? (it is an event after all?)
My Firestore database is set up like this, so I use the collection “control” to monitor in my Initialize Data Layer event. So is there any mistake in my collection path?
The page is open and the debug (as mentioned above) is working with a simple “Get Data” action.
Hi @blindedhalo,
Thanks for sharing those details and screenshots—they’re really helpful!
Your current setup looks correct in terms of how the Initialize Data Layer
action is triggered. The fact that the Get Data
action works suggests the Data Layer is indeed initialized. However, to better understand why the “Data Layer Updated” event might not be firing, we’ll need to dig a bit deeper.
Could you please also share:
- A screenshot of how your “Data Layer Updated” event is configured in the workflow
- Any conditions that may be attached to that event
- Whether the Firestore document (
control/audio
) is being updated while the page is open
This additional info will help us either spot a misconfiguration or compile a clear report for our dev team to review.
Thanks again, looking forward to your reply!
Regards,
Support Team
Browse all Zeroqode Plugins for Bubble

I posted these before, but maybe you missed them (this conversation increasingly seems like talking to an AI bot I must confess…).
This is my setup for the Data Layer Updated event with no conditions attached:
The Firestore Database is being updated while the receiver page is open and the changes are reflected in the database (as seen in the screenshot below):
Hi again @blindedhalo ,
Thanks a lot for the detailed explanation.
I’ve shared all the information with our development team, and they’re currently looking into it. We’ll follow up as soon as we have any updates.
Appreciate your patience!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

1 Like
Hi @blindedhalo,
Just a quick update - we’ve released version 1.9.0 of the Firebase DataSync plugin.
This update includes an improvement to the “Get Data” action, which now prevents the “Data Layer Updated” event from triggering when a collection is first initialized.
Please feel free to update to the latest version and let us know if it resolves the issue on your end.
We’ll be happy to hear your feedback!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble

1 Like
Dear ZeroqodeSupport-Team: YES, indeed now everything works perfectly fine. Thank you so much for the continous support, that was really amazing!
And for everyone reading along. Here is the final setup I used with the Firebase Data Sync Plugin version 1.9.0. I am changing the data in my Firestore Database (important: the plugin only works with the Firestore Database, NOT the Realtime Database!) via a trigger page. The receiver page then reacts to those changes in the database via a Data Layer Updated Event (setup: see pictures below):
Firestore Database setup
TRIGGER page
RECEIVER page
1 Like
Hi @blindedhalo,
That’s fantastic to hear - thank you so much for the kind words and for confirming that everything is now working smoothly with the plugin!
We also really appreciate you taking the time to share your final setup and clarify the distinction between Firestore and Realtime Database for others who may be following along. This kind of feedback is incredibly valuable for the community.
If you ever have more suggestions, feedback, or questions down the road, feel free to reach out anytime.
Wishing you continued success with your project!
Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble
