Почему DocumentSnapshot.ref возвращает одну вещь в браузере, а другую - Android? - PullRequest
0 голосов
/ 29 апреля 2020

Я занимаюсь разработкой приложения с использованием 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 вместо получения только его идентификатора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...