如何在 Firebase 实时数据库中检索数据?
How to retrieve data in Firebase realtime database?
我已经通过创建向导在 Firebase(不是 Firestore)中创建了一个新应用。我什至通过网络 UI 在我的数据库中输入了一些虚拟数据。我如何从 fireabase-admin SDK 检索此数据?
我已经像这样初始化了我的应用程序:
import admin from "firebase-admin";
var serviceAccount = require("../private-key.json");
const app = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://<my-db-url>.firebaseio.com/'
});
const db = app.database()
db
似乎没有任何获取或设置方法。我错过了什么?
跟在https://firebase.google.com/docs/database/admin/retrieve-data后面,不清楚db.ref
是什么。我需要这个吗?
如何从我的数据库中检索数据?
db.ref
表示数据库中的特定位置,可用于读取数据或将数据写入该数据库位置。
您应该检查 firebase.database.Reference 您可以使用的属性和方法。
这是从 Firebase 实时数据库读取数据的示例代码段:
var admin = require("firebase-admin");
// Initialize the app with a service account, granting admin privileges
admin.initializeApp({
databaseURL: "your-database-url"
});
// admin.database.enableLogging(true);
// As an admin, the app has access to read and write all data, regardless of Security Rules
var db = admin.database();
var ref = db.ref("Users");
var getPromise = ref.once("value", function(snapshot) {
console.log(snapshot.val());
});
return Promise.all([getPromise])
.then(function() {
console.log("Transaction promises completed! Exiting...");
process.exit(0);
})
.catch(function(error) {
console.log("Transactions failed:", error);
process.exit(1);
});
在上面的代码片段中,我们使用 snapshot.val()
从 DataSnapshot
中提取一个值。 val() 方法可以 return 标量类型(字符串、数字或布尔值)、数组或对象。它也可能 return null,表示 DataSnapshot 为空(不包含任何数据)。
您还应该检查 DataSnapshot 以了解您可以使用的可用属性和方法。
我们还使用了 Promise.all()
方法,该方法将可迭代的承诺作为输入,并且 return 是一个解析为输入承诺结果数组的单一承诺。此 returned 承诺将在所有输入的承诺都已解决时解决,或者如果输入可迭代不包含任何承诺,则在发生任何错误时捕获。
我已经通过创建向导在 Firebase(不是 Firestore)中创建了一个新应用。我什至通过网络 UI 在我的数据库中输入了一些虚拟数据。我如何从 fireabase-admin SDK 检索此数据?
我已经像这样初始化了我的应用程序:
import admin from "firebase-admin";
var serviceAccount = require("../private-key.json");
const app = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://<my-db-url>.firebaseio.com/'
});
const db = app.database()
db
似乎没有任何获取或设置方法。我错过了什么?
跟在https://firebase.google.com/docs/database/admin/retrieve-data后面,不清楚db.ref
是什么。我需要这个吗?
如何从我的数据库中检索数据?
db.ref
表示数据库中的特定位置,可用于读取数据或将数据写入该数据库位置。
您应该检查 firebase.database.Reference 您可以使用的属性和方法。
这是从 Firebase 实时数据库读取数据的示例代码段:
var admin = require("firebase-admin");
// Initialize the app with a service account, granting admin privileges
admin.initializeApp({
databaseURL: "your-database-url"
});
// admin.database.enableLogging(true);
// As an admin, the app has access to read and write all data, regardless of Security Rules
var db = admin.database();
var ref = db.ref("Users");
var getPromise = ref.once("value", function(snapshot) {
console.log(snapshot.val());
});
return Promise.all([getPromise])
.then(function() {
console.log("Transaction promises completed! Exiting...");
process.exit(0);
})
.catch(function(error) {
console.log("Transactions failed:", error);
process.exit(1);
});
在上面的代码片段中,我们使用 snapshot.val()
从 DataSnapshot
中提取一个值。 val() 方法可以 return 标量类型(字符串、数字或布尔值)、数组或对象。它也可能 return null,表示 DataSnapshot 为空(不包含任何数据)。
您还应该检查 DataSnapshot 以了解您可以使用的可用属性和方法。
我们还使用了 Promise.all()
方法,该方法将可迭代的承诺作为输入,并且 return 是一个解析为输入承诺结果数组的单一承诺。此 returned 承诺将在所有输入的承诺都已解决时解决,或者如果输入可迭代不包含任何承诺,则在发生任何错误时捕获。