#javascript #typescript
#javascript #typescript
Вопрос:
Функция validateBusinessId выдает пустую переменную businessExists. Я пытаюсь назначить разные пути к базе данных в зависимости от того, существует ли бизнес в базе данных или загруженный файл является основным файлом. Функция validateBusiness выдает результат void. Не уверен, как это исправить. Где я ошибся?
async function validateBusinessId(businessId: string) {
db.collection('business').doc(businessId).get()
.then((docSnapshot) => {
if (docSnapshot.exists) {
return true
} else {
return false
}
})
}
async function getDatabase(fileName: string, businessId: string) {
const businessExists = await validateBusinessId(businessId)
if ((fileName) amp;amp; (fileName?.includes('masterFile'))) {
console.log('A new Master database file has been detected.')
return db.collection('products')
} else if ((businessId) amp;amp; (businessExists)) {
// If the business exists, return business path
console.log('A new database file has been detected for business: ' businessId)
return db.collection('business').doc(businessId).collection('products')
} else {
return null
}
}
Помощь высоко ценится!
Ответ №1:
Хорошо, итак, я обнаружил, что неправильно обработал обещание результата запроса. Вот код, который сработал для меня.
async function validateBusinessId(businessId: string) {
const databaseDocumentSnapshot = await db.collection('business').doc(businessId).get()
if (databaseDocumentSnapshot.exists) {
return true
} else {
return false
}
}
async function getDatabase(fileName: string, businessId: string) {
const businessExists = await validateBusinessId(businessId)
if ((fileName) amp;amp; (fileName?.includes('masterFile'))) {
console.log('A new Master database file has been detected.')
return db.collection('products')
} else if ((businessId) amp;amp; (businessExists)) {
return db.collection('business').doc(businessId).collection('products')
} else {
console.log('No business with such ID exists: ' businessId);
return null
}
}