我一直在网上关注有关使用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...");
}
});
当我在控制台中运行代码时,它会进行匿名身份验证并按预期返回用户iD和文档。
但是以某种方式它挂在了Promise上,控制永远不会返回到控制台。我必须使用Ctrl-C终止命令。见下文:
我做错什么了吗?