Я следовал онлайн-урокам по созданию приложения для чата с Node и Firestore.
Мой код выглядит так:
const firebaseConfig = require('./firebase_config');
const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);
var db = firebase.firestore();
firebase.auth().signInAnonymously().catch(function(error) {
console.log(error.code);
console.log(error.message);
});
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
var isAnonymous = user.isAnonymous;
var uid = user.uid;
console.log();
console.log("User is anonymous: ", isAnonymous);
console.log("User ID: ", uid);
var chats = db.collection("Chats");
var all_chats = chats.get()
.then(snapshot => {
snapshot.forEach(entry => {
console.log(entry.id, '->', entry.data());
});
})
.catch(err => {
console.log("An error occurred: ", err);
});
} else {
console.log("Authenticating...");
}
});
Когда я запускаю код в консоли, он выполняет аутентификацию анонимно и возвращает идентификатор пользователя и документы, как и ожидалось.
Но каким-то образом оно зависит от обещания, и управление никогда не возвращается на консоль. Я должен завершить команду с помощью Ctrl-C. Смотрите ниже:
Я что-то не так делаю?