#android #firebase #firebase-realtime-database #google-cloud-firestore
#Android #firebase #firebase-база данных в реальном времени #google-облако-firestore
Вопрос:
Я тестирую руководство по настройке firestore, но я сталкиваюсь с такой проблемой, что, похоже, не нахожу для нее никакого решения. кто-нибудь может помочь?
Я просто следую базовому коду настройки, но не могу добавить данные в Firestore. Мне уже удалось протестировать базу данных в реальном времени, и теперь я тестирую firestore.
это код в моей основной деятельности
FirebaseFirestore db = FirebaseFirestore.getInstance();
Map<String, Object> user = new HashMap<>();
user.put("first", "Ada");
user.put("last", "Lovelace");
user.put("born", 1815);
db.collection("cities").document("LA")
.set(user)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(TAG, "DocumentSnapshot successfully written!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error writing document", e);
}
});
и это ошибка
04-23 01:32:05.450 3260-3320/com.lepuff.hendry.postest с Firestore: (18.2.0) [Firestore]: не удалось обновить контекст ssl
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest W / dalvikvm: не удалось разрешить суперкласс Lcom / google / firebase /firestore/remote/AndroidConnectivityMonitor$DefaultNetworkCallback; (399)
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest с dalvikvm: Ошибка ссылки класса ‘Lcom / google/ firebase/firestore/remote/AndroidConnectivityMonitor$DefaultNetworkCallback;’
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest E/dalvikvm: Не удалось найти класс ‘com.google.firebase.firestore.remote.AndroidConnectivityMonitor$DefaultNetworkCallback’, на который ссылается метод com.google.firebase.firestore.remote.AndroidConnectivityMonitor.configureNetworkMonitoring
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest W /dalvikvm: VFY: не удалось разрешить новый экземпляр 6784 (Lcom / google /firebase /firestore/remote/AndroidConnectivityMonitor$DefaultNetworkCallback;) в Lcom / google /firebase/firestore/remote/AndroidConnectivityMonitor;
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest W / dalvikvm: не удалось разрешить суперкласс Lcom / google / firebase /firestore/remote/AndroidConnectivityMonitor$DefaultNetworkCallback; (399)
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest с dalvikvm: Ошибка ссылки класса ‘Lcom / google/ firebase/firestore/remote/AndroidConnectivityMonitor$DefaultNetworkCallback;’
04-23 01:32:05.710 3260-3320/com.lepuff.hendry.postest D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xe049 в 0x0d в Lcom / google / firebase / firestore/ remote /AndroidConnectivityMonitor;.configureNetworkMonitoring
это правило
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}}}
уже добавлены зависимость, применяемый плагин и путь к классу.
спасибо и с уважением за любую помощь.
Комментарии:
1. произошла ошибка, которую я видел, написанная так, как будто версия утилиты служб Google Play была неправильной. мне интересно, в этом ли проблема? я понятия не имею, как обновить его в эмуляторе, хотя
Ответ №1:
Ну, так как ожидание в течение 2 дней и до сих пор нет ответа. я выяснил, что когда я тестирую код на своем телефоне, все работает нормально. наконец-то удалось загрузить данные в firestore.
итак, я предполагаю, что проблема действительно могла быть в версии Google Play Services util. но я целый день пытался найти способ поместить Play Store в эмулятор, но безрезультатно. некоторые говорят, что переход на версию nougat приведет к появлению всплывающего окна Play Store. но не для меня.
таким образом, я сдаюсь, а затем протестировал код на своем телефоне.
надеюсь, это поможет кому-то еще, кто может столкнуться с этой проблемой в будущем. и надеюсь, что Android Studio поможет разобраться в этом.
с уважением.
Комментарии:
1. Я получаю ту же проблему в эмуляторе новой бета-версии на чипе M1
Ответ №2:
Я думаю, что проблема, с которой вы столкнулись, заключается в том, что используемый вами эмулятор не имеет значка Google playstore, поэтому он не поставляется со службами Google, что выдает ошибку.
Решение заключается в установке эмулятора со значком Google Playstore, и я думаю, он должен работать нормально