Ранее я использовал базу данных Firebase в реальном времени, но теперь хочу переключиться на Cloud Firestore, но получаю указанную ниже ошибку, даже при аутентификации. В настоящее время я использую Android Simulator, попытался отключить базу данных в реальном времени, но не могу найти решение.
Firebase v5.4.2
[2018-09-02T12: 53: 42.064Z] @ firebase / firestore: ',' Firestore (5.0.4):
Не удалось связаться с бэкэндом Cloud Firestore. Бэкэнд не ответил в течение
10 секунд. Обычно это означает, что ваше устройство не имеет
здоровое интернет соединение на данный момент. Клиент будет работать в
автономный режим, пока он не сможет успешно подключиться к бэкэнду.
Моя конфигурация настроена:
{
"apiKey": "apiKey",
"authDomain": "authDomain.firebaseapp.com",
"databaseURL": "https://databaseURL.firebaseio.com",
"projectId": "projectID",
"storageBucket": "storageBucket.appspot.com",
"messagingSenderId": "messagingSenderId"
}
В соответствии с документами я добавляю коллекцию пользователей. Обратите внимание, что я не попадаю в оператор .then или .catch, даже если вручную настраиваю коллекцию пользователей для базы данных.
onTestPress() {
console.log("onTestPress");
var db = firebase.firestore();
//console.log(db);
const settings = { timestampsInSnapshots: true };
db.settings(settings);
db.collection("users").add({
first: "Ada",
last: "Lovelace"
}).then(function (docRef) {
console.log("adding document: ", docRef.id);
}).catch(function (error) {
console.log("Error adding document: ", error);
});
db.collection("users").get().then((querySnapshot) => {
console.log(`querySnapshot: ${querySnapshot}`)
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${JSON.stringify(doc.data())}`);
});
});
}
Это из Android Logcat, вы можете увидеть, что запрос .get () возвращает локальную копию. Единственное, что подозрительно, это дубликат названия слоя?
09-02 14:05:37.811 2987-4016/com.myApp I/ReactNativeJS: onTestPress
09-02 14:05:47.837 2987-4016/com.myApp E/ReactNativeJS: '[2018-09-02T13:05:47.837Z] @firebase/firestore:', 'Firestore (5.0.4): Could not reach Cloud Firestore backend. Backend didn\'t respond within 10 seconds.\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.'
09-02 14:05:47.849 2987-4016/com.myApp I/ReactNativeJS: querySnapshot: [object Object]
09-02 14:05:47.849 2987-4016/com.myApp I/ReactNativeJS: 3jifIc5kyEkGU4Bzvau9 => {"first":"Ada","last":"Lovelace"}
09-02 14:05:47.858 1431-1431/? D/SurfaceFlinger: duplicate layer name: changing com.myApp/com.myApp.MainActivity to com.myApp/com.myApp.MainActivity#1
09-02 14:05:47.931 2987-3021/com.myApp D/EGL_emulation: eglMakeCurrent: 0x9d7857e0: ver 3 0 (tinfo 0x9d783540)
Вот мой импорт:
import firebase from "firebase";
import '@firebase/firestore'
Настройка правил, которая должна позволять чтение и запись?
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Я действительно не уверен, что еще я могу проверить, поэтому любые советы будут с благодарностью!