0

我已经创建了一个名为 Firebase.js 的服务,然后我试图从我的控制器中调用它Firebase.database,但是我得到了错误Firebase.database() is not a function

服务/Firebase.js

var admin = require("firebase-admin");

var instance = admin.initializeApp({
        credential: admin.credential.cert({
          [[cert info]]
        }),
        databaseURL: "foo.com"
    })

module.exports.default = instance;

控制器

    var db = Firebase.database();
    var ref = db.ref("my-db");
    var brandsRef = ref.child("brands");

    brandsRef.once("value", function(data){
        console.log(data);
    })

我不太确定我哪里出错了。有什么建议么?

4

4 回答 4

2

服务/Firebase.js

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

var instance = admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://YOUR_DATABASE_NAME.firebaseio.com"
});

module.exports.firebaseDB = instance.database();// Export the database object

控制器

//Don't need initialize the Firebase again, only call function from service
var ref = Firebase.firebaseDB.ref("/your_resource");
ref.once("value", function(snapshot) {
  return res.json({MY_RESOURCE_DATA: snapshot.val()});
});

其中Firebase是服务文件名,而firebaseDB是导出以在服务中使用的数据库对象。

于 2017-09-01T16:13:50.833 回答
0

在您的控制器中,您应该初始化数据库以供使用。代码与此类似:

var config = {
    apiKey: "Sample api key here",
    authDomain: "yourapplication.firebaseapp.com",
    databaseURL: "yourapplication.firebaseio.com",
    storageBucket: "yourapplication.appspot.com",
    messagingSenderId: "Id number here"
  };
firebaseObject.initializeApp(config);

然后 firebaseObject 将成为您用于数据库引用的对象,如下所示:

var db = firebaseObject.database();
var ref = db.ref("my-db");
于 2017-01-26T23:33:52.193 回答
0

也许问题是您使用的是大写字母,请使用firebase.database().

于 2019-10-11T20:57:55.830 回答
-1

在控制器中你必须做

var db = Firebase.database();
var ref = db.ref("my-db");
var brandsRef = ref.child("brands");

brandsRef.once('value').then{function(snapshot){
    console.log(snapshot.val()._name data from firebase__);
});
于 2017-01-26T20:40:08.860 回答