Still think that context is the issue preventing removal of the listeners. Going to try to store a firebase context in another firebase DB.
I still think the issue is with the context. If I could save the context of a connection and then reuse it the next time I create a connection for that user, then my guess is that I'd be able to remove the old listeners.