来自 Node 的 Firebase:回调没有响应?

Firebase from Node: no response from callback?

我正在尝试让 Hello World 在这里工作——只需让我的 Node 脚本与 Firebase 对话。我制作了一个我认为应该读取 "stories" 集合的脚本,但我没有收到 Firebase 的回复。我确定我错过了一些非常基本的东西。请帮忙!

var db = admin.database();
var ref = db.ref("stories");

ref.on("value", function(snapshot) {
  console.log(snapshot.val());
}, function (errorObject) {
  console.log("The read failed: " + errorObject.code);
});
console.log('exiting');

...但我得到的是:

p:0: Browser went online.
p:0: Listen called for /stories default
exiting
p:0: Making a connection attempt
p:0: Auth token refreshed
getToken() completed. Creating connection.
c:0:0: Connection created
c:0:0:0 Websocket connecting to wss://*****.firebaseio.com/.ws?v=5

我想出了一个等待更长时间的方法,得到了这个:

p:0: Browser went online.
p:0: Listen called for /stories default
exiting
p:0: Making a connection attempt
p:0: Auth token refreshed
getToken() completed. Creating connection.
c:0:0: Connection created
c:0:0:0 Websocket connecting to wss://*****.firebaseio.com/.ws?v=5
c:0:0: Closing unhealthy connection after timeout.
c:0:0: Closing realtime connection.
c:0:0: Shutting down all connections
c:0:0:0 WebSocket is being closed
p:0: data client disconnected
p:0: Trying to reconnect in 0ms
0: onDisconnectEvents
p:0: Making a connection attempt
getToken() completed. Creating connection.
c:0:1: Connection created
c:0:1:0 Websocket connecting to wss://*****.firebaseio.com/.ws?v=5
c:0:0:0 Websocket connection was disconnected.

我做错了什么?

真正的 once() 而不是 on()once() 只需查询一次,return 就是一个承诺。 on() 建立一个 运行 的侦听器,直到您将其删除,并且它不是 return 承诺。

ref.once('value')
.then(snapshot => {
    console.log(snapshot.val());
})
.catch(error => {
    console.error(error);
});

您谈到了 collection,所以我认为您正在使用 Cloud Firestore,而不是实时数据库。 所以代码应该是:

const db = admin.firestore();
db.collection('stories').get()
    .then((snapshot) => {
        snapshot.forEach((doc) => {
            console.log(doc.id, '=>', doc.data());
        });
    })
    .catch((err) => {
        console.log('Error getting documents', err);
    });

请看这张图: enter image description here