Фаирбейс сам управляет своим вебсокет-соединением. Приложение же управляет слушателями: подписывается на обновления базы данных когда это необходимо и отписывается когда обновления больше не требуется.
Как-то так:
import { doc, onSnapshot } from 'firebase/firestore'
export default function EntitityPage({ entityId }) {
const [ entity, setEntity ] = React.useState(null)
React.useEffect(() => {
const unsubscribe = onSnapshot(doc(db, 'entities', entityId), (snapshot) => {
setEntity(snapshot.data())
})
return () => {
unsubscribe()
}
}, [entityId])
return (
<div>{JSON.stringify(entity)}</div>
)
}