Description
[REQUIRED] Please fill in the following fields:
- Pre-built SDK from the website or open-source from this repo: Open-source from this repo
- Firebase C++ SDK version: 10.7.0
- Main Firebase Components in concern: Auth
- Other Firebase Components in use: Database
- Platform you are using the C++ SDK on: Linux
- Platform you are targeting: Desktop
[REQUIRED] Please describe the question here:
Expected behavior:
I expect to be able to establish a WebSocket connection using the Firebase C++ SDK and receive real-time updates of the database.
Actual behavior:
The WebSocket connection fails to establish using the Firebase C++ SDK, but a simple WebSocket client I wrote could build a secure connection (wss) to a public websocket server on the same device. The Firebase Realtime Database REST API connection works without any issues.
Description:
I am experiencing an issue with the Firebase C++ SDK, where I am unable to establish a WebSocket connection to the Firebase Realtime Database server. Here is the log message:
DEBUG: [conn_1170] websocket error occurred. Uri: wss://....firebaseio.com/.ws?ns=...&v=5
DEBUG: Error occurred while establishing connection to wss://....firebaseio.com/.ws?ns=...&v=5
DEBUG: [conn_1170] Closing connection. Reason: 4
DEBUG: [pc_0] Got on disconnect due to 4
However, when I tested the connection using a simple WebSocket client I wrote on the same device, it was able to connect successfully. So it might not be a router's firewall setting issue.
I also tested the connection using the Firebase Realtime Database REST API with the same credential by doing
$ curl "https://....firebaseio.com/.../msg.json?auth=$(cat token)"
<response message>
and it worked without any issues. This suggests that the issue is specific to the WebSocket functionality of the Firebase C++ SDK.
I have checked my code for any errors or issues and ensured that I am using the correct credentials and endpoint URLs. I am using the latest version of the Firebase C++ SDK, and have followed the documentation provided by Firebase.