Thanks so much for reviewing and the feedback!
The emulator is certainly interesting and will be incredibly useful for testing. However, it does not solve the real problem of testing or solving a production issue;
- A client is trying to write to the database
- The client is getting permission denied
- I have no idea why, this is a black box.
In my post, I describe how I made a mistake with setting up the simulator and testing against it. The emulator suffers the same problem. I could just as easily make the mistake of testing the wrong data. The only way to know why real data is failing to write is if the RTDB logs the failures - if only for a short time. With a "real" backend that I control, I can quickly see what is really coming in to the endpoint vs what I THINK is coming in. It would be great if Firebase could add that functionality.
IP Address Logging:
"For privacy reasons I doubt we plan to log users IP addresses automatically" : Your customers are Firebase developers and enterprises. It is up to them to decide what they need to provide their services to THEIR customers. In some cases, a business simply can't use Firebase because their internal requirements stipulate logging all requests including IP address. Why would Firebase/Google be opposed to this? ANY LAMP, Node.js, etc backend can do this. Why should Firebase prevent a developer from gaining access to information they could get if they rolled their own API? I'm absolutely certain that Google uses IP address information for analytics, advertising, etc; so, why would Firebase feel other developers/companies don't have a right to access the information?