This has been a difficult problem to debug because I don't know for certain where the problem is and I can't reproduce it on purpose. I have an iOS app that can have up to about 15 Firestore snapshot listeners that are instantiated at app launch. Sometimes a listener will get hung up and never return and sometimes it generates a network connection error but most of the time it doesn't generate any error--it just becomes and remains unresponsive until the app is rebooted.
I figured that perhaps too many snapshot listeners were being instantiated simultaneously so I've staggered their instantiation over a few seconds (adding the listeners that don't effect the UI or the app launch itself last). It appears to have remedied the problem because I haven't had it since but, again, reproducing this problem has proven very difficult.
Therefore, should adding multiple snapshot listeners simultaneously be avoided? Is there a good reason why adding too many at the same time might cause some of them to act unexpectedly?