Я занимаюсь разработкой приложения с использованием Cordova (Phonegap) и Firestore. Для интеграции Firestore я использую cordova-plugin-firestore .
У меня в основном следующий фрагмент кода:
userId = 'some_id_here';
db.collection('some/collection/path').get().then(querySnapshot) => {
querySnapshot.forEach(doc => {
checkVote(doc).then(userDoc => {
// ... some other logic
}
}
}
async function checkVote(doc){
let userDoc = await db.collection(doc.ref.path).doc(userId).get();
// ... some other logic
return userDoc
}
Итак, когда я при выполнении кода на платформе браузера все работает как положено: doc.ref.path
возвращает объект (ref
), который содержит путь (path
) документа в качестве свойства. Поэтому я могу получить userDoc
и сделать все, что мне нужно.
Но, с другой стороны, когда я тестирую его на своем Android телефоне, я получаю ошибки, потому что user.ref
не возвращает ref
объект, но он возвращает только строку, содержащую идентификатор документа. (Поэтому, когда я пытаюсь получить user.ref.path
, он возвращает undefined
)
Итак, мой вопрос: есть ли причина для такого поведения? Почему я получаю два разных DocumentSnapshots (один, содержащий doc.ref
как объект, а другой как строку, как описано выше) для каждой платформы?
Кроме того, есть ли способ получить фактический путь к документу при запуске кода на Android вместо получения только его идентификатора?