#node.js #firebase #firebase-realtime-database
#node.js #firebase #firebase-база данных в реальном времени
Вопрос:
Я следил за node.js руководство по настройке приложения firebase. Это код в моем app.js
файле. Вся информация верна, но я не получаю значение из ключа моментального снимка. На самом деле, storesRef.once()
никогда не печатает «тест». Ошибки не выдаются, поэтому я не уверен, где я ошибаюсь.
// init firebase
firebase.initializeApp({
serviceAccount: {
projectId: "wrapper",
clientEmail: "wrapper@wrapper.iam.gserviceaccount.com",
privateKey: "-----BEGIN PRIVATE KEY-----nMY KEYn-----END PRIVATE KEY-----n"
},
databaseURL: "https://wrapper.firebaseio.com"
});
// test get
var db = firebase.database();
var storesRef = firebase.database().ref('Stores/');
storesRef.once('value', function(snapshot) {
console.log(snapshot.key);
console.log("test");
},function (errorObject) {
console.log("The read failed: " errorObject.code);
});
Спасибо!
Ответ №1:
Чтобы использовать выбранные значения, их необходимо извлечь с помощью метода .val() .
Из документации firebase:
firebase.database.DataSnapshot
Снимок данных содержит данные из местоположения базы данных.
Каждый раз, когда вы считываете данные из базы данных, вы получаете данные в виде DataSnapshot. Снимок данных передается обратным вызовам событий, которые вы подключаете с помощью on() или once() . Вы можете извлечь содержимое моментального снимка в виде объекта JavaScript, вызвав метод val() . Кроме того, вы можете перейти к моментальному снимку, вызвав child(), чтобы вернуть дочерние снимки (для которых вы затем можете вызвать val()).) .
storesRef.once('value', function(snapshot) {
console.log(snapshot.val().key); // change this
console.log("test");
},function (errorObject) {
console.log("The read failed: " errorObject.code);
});
Комментарии:
1. Ни тест, ни val().ключ напечатан
2. Правильная ли ссылка? Попробуйте распечатать ссылку,
storesRef.toString()
.