【问题标题】:How to retrieve data in Firebase realtime database?如何在 Firebase 实时数据库中检索数据?
【发布时间】:2022-01-05 17:51:20
【问题描述】:

我通过创建向导在 Firebase(不是 Firestore)中创建了一个新应用。我什至通过 Web 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 似乎没有任何 get 或 set 方法。我错过了什么?

https://firebase.google.com/docs/database/admin/retrieve-data之后,不清楚db.ref是什么。我需要这个吗?

如何从我的数据库中检索数据?

【问题讨论】:

    标签: javascript node.js firebase-realtime-database firebase-admin


    【解决方案1】:

    db.ref 代表数据库中的特定位置,可用于读取或写入数据到该数据库位置。

    您应该检查firebase.database.Reference 以获取您可以使用的属性和方法。

    这是一个从 Firebase 实时数据库读取数据的示例 sn-p:

    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);
      });
    

    在上面的 sn-p 中,我们使用 snapshot.val()DataSnapshot 中提取值。 val() 方法可以返回标量类型(字符串、数字或布尔值)、数组或对象。也可能返回null,表示DataSnapshot为空(不包含数据)。

    您还应该检查DataSnapshot 以获取您可以使用的可用属性和方法。

    我们还使用了Promise.all() 方法,它将一个可迭代的 Promise 作为输入,并返回一个解析为输入 Promise 结果数组的 Promise。当输入的所有承诺都已解决时,此返回的承诺将解决,或者如果输入迭代不包含任何承诺,则在发生任何错误时捕获。

    【讨论】:

      猜你喜欢
      • 2021-08-20
      • 2017-04-04
      • 2018-09-11
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2019-04-16
      • 2020-12-09
      相关资源
      最近更新 更多