Я пытаюсь протестировать свое приложение для Android, которое использует данные из Firebase Firestore. Однако у меня возникла проблема при запросе данных с помощью моего локального эмулятора Firebase Firestore и эмулятора Android.
Когда я запрашиваю данные с помощью эмулятора Android из Cloud Firestore, все работает нормально. Когда я запрашиваю данные из Emulator Firestore, я получаю пустой DataSnapshot.
Оба экземпляра Firestore (локальный эмулятор и облачный Firestore) содержат одни и те же данные.
Когда я ввожу 10.0.2.2.:4001 в браузере моего эмулятора Android, я перехожу в набор эмуляторов Firebase и вижу, что статус эмулятора Firestore включен. По моему мнению, это означает, что существует соединение с моим локально работающим эмулятором Firestore.
Мой код для запуска экземпляра Firestore:
private val db = Firebase.firestore
db.useEmulator("10.0.2.2", 8080)
db.firestoreSettings = firestoreSettings { isPersistenceEnabled = false }
val docVal = db.collection("district_codes")
.document("district_codes")
.get()
.await()
Журналы моего работающего локального эмулятора Firestore:
┌─────────────────────────────────────────────────────────────┐
│ ✔ All emulators ready! It is now safe to connect your app. │
│ i View Emulator UI at http://127.0.0.1:4001/ │
└─────────────────────────────────────────────────────────────┘
┌───────────┬────────────────┬─────────────────────────────────┐
│ Emulator │ Host:Port │ View in Emulator UI │
├───────────┼────────────────┼─────────────────────────────────┤
│ Firestore │ 127.0.0.1:8080 │ http://127.0.0.1:4001/firestore │
└───────────┴────────────────┴─────────────────────────────────┘
Emulator Hub running at 127.0.0.1:4401
Other reserved ports: 4501, 9150
Почему я не могу получить данные из локально работающего экземпляра Firebase Firestore, хотя извлечение данных из экземпляра Cloud Firestore работает правильно?
Обновить
Я пытаюсь протестировать его с помощью простой тестовой записи: в путь /Test/doc_test я добавил строковое поле с именем test_field.
Я получите его с помощью следующей команды:
val docVal = db.collection("Test").document("doc_test").get().await()
val foundValue = docVal.get("test_field") as String?
Log.i(TAG_FIRESTORE, "Found following test value: ${foundValue} - ${docVal}")
И получите следующую запись в журнале:
Found following test value: null - DocumentSnapshot{key=Test/doc_test, metadata=SnapshotMetadata{hasPendingWrites=false, isFromCache=false}, doc=null}
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-but-work
Локальный эмулируемый Firestore возвращает пустой DataSnapshot в эмулятор Android, но работает с Cloud Firestore ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение