I have an Android app that uses the Firebase Realtime Database. The app works perfectly on mobile data networks (like Vodafone 4G) and most Wi-Fi networks.
The Problem:
When the device is connected to a specific ISP, Jio Fiber broadband (Wi-Fi), the connection to the Realtime Database fails silently. My ValueEventListener is attached, but neither onDataChange() nor onCancelled(DatabaseError error) is ever called. The app simply hangs, waiting for data that never arrives.
Troubleshooting Steps & Findings:
I've confirmed this is a network-specific issue:
Changing Private DNS on Android: Setting the Private DNS on the device itself to dns.google or Cloudflare's equivalent did not work.
Using a VPN: When I use a VPN on the same Jio Wi-Fi network, the connection works perfectly.
Changing DNS on the Router: When I change the DNS servers on the Jio router itself to Google's (8.8.8.8) or Cloudflare's (1.1.1.1), the connection works perfectly for all devices on the network.
My Questions:
Why does the Firebase SDK fail silently in this scenario? Why isn't onCancelled() triggered to report a network timeout or connection error?
Why would a router-level DNS change succeed while a device-level Private DNS (DNS-over-TLS) change fails? Does this imply the ISP is blocking the required port (853)?
Update:
Now Google is showing this on firebase realtime dashboard screen -"Certain users in India may be unable to access RTDB. We are working on a fix." It is almost end of second day but the issue is not fixed. It is strange that big companies like Google having difficulty to get this issue fixed.
