.forEach
не обеспечивает прямой механизм для ранних выходов. Лучше всего для этого сделать исключение:
querySnapshot => {
if (!querySnapshot.empty) {
try {
querySnapshot.forEach(doc => {
let data = doc.data()
if (data.age == 16) {
// Throw an exception to break. Use a custom exception type to
// distinguish it from other possible exceptions that could be
// thrown
throw EarlyExit;
}
})
} catch(exception) {
// If the exception thrown is not our EarlyExit type, then re throw,
// otherwise resume as if look with terminated
if(exception !== EarlyExit) {
throw exception
}
}
}
}
В качестве альтернативы, вы можете использовать обычный подход for-loop для упрощения разбиения:
for(const doc of querySnapshot) {
let data = doc.data()
if (data.age == 16) {
break;
}
}