У меня нет полного контекста о том, что вы создаете, но согласно документам, onSnapshot
запускается каждый раз, когда изменяется содержимое документа. Это может или не может быть именно то, что вы хотите.
https://firebase.google.com/docs/firestore/query-data/listen
Если вы просто хотите гарантировать порядок функций, вы можете сделать:
firestore()
.collection('coolection').doc().collection('public')
.where('act', '==', 1)
.orderBy('time', 'asc')
.limit(10)
.then(onResult)
.catch(onError);
или с асинхронным / ожидающим синтаксисом:
try {
const result = await firestore()
.collection('coolection').doc().collection('public')
.where('act', '==', 1)
.orderBy('time', 'asc')
.limit(10)
onResult(result);
} catch (err) {
onError(err);
}