Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Firebase管理数据库始终将null作为spnapshot值返回_Node.js_Firebase Admin - Fatal编程技术网

Node.js Firebase管理数据库始终将null作为spnapshot值返回

Node.js Firebase管理数据库始终将null作为spnapshot值返回,node.js,firebase-admin,Node.js,Firebase Admin,接下来,对于snapshot.val(),我总是得到null。为什么呢 我正在使用node sdk访问firebase数据库上的users集合。我确信该系列确实存在: 请求用户: import { NextFunction, Request, Response } from 'express'; import * as admin from 'firebase-admin'; export const getUsers = (request: Request, response: Resp

接下来,对于
snapshot.val(),我总是得到
null
。为什么呢

我正在使用
node sdk
访问firebase数据库上的
users
集合。我确信该系列确实存在:

请求用户:

import { NextFunction, Request, Response } from 'express';

import * as admin from 'firebase-admin';

export const getUsers = (request: Request, response: Response, next: NextFunction) => {

admin.database.enableLogging(true);
const db = admin.database();
const ref = db.ref("users");

ref.once("value", function (snapshot) {
    const users = snapshot.val();
    console.log('users', users); // always null
    response.json({
      success: true,
      result: users
    });
  });
}
设置
管理员

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: config.databaseURL
});
节点版本:

v12.4.0

以下是来自节点的日志:


似乎我错过了与Firebase
实时数据库相关的主要部分。有两种类型:
实时数据库
云Firestore
(下一代实时数据库)。在使用第二个名称空间时,我需要使用适当的
firebase admin
,它应该是
firestore
(不是
database
,它是用于实时数据库-第一个):


似乎我错过了与Firebase
实时数据库相关的主要部分。有两种类型:
实时数据库
云Firestore
(下一代实时数据库)。在使用第二个名称空间时,我需要使用适当的
firebase admin
,它应该是
firestore
(不是
database
,它是用于实时数据库-第一个):


我不知道这有什么关系,但你能试着用承诺代替回访吗?感谢您的评论,但不,它无法解决问题。另外,您是否仔细检查了您的
config.databaseURL
?日志显示已建立实时连接,我确信它是正确的数据库不知道它是相关的,但您能试着使用承诺而不是回调吗?感谢您的评论,但不,它无法解决问题。另外,您是否仔细检查了您的
config.databaseURL
?日志显示已建立实时连接,我确信这是正确的数据库
const db = admin.firestore();

const userRef = db.collection('users');
userRef.get()
  .then(snapshot => {
    const users: any = [];
    snapshot.forEach(doc => {
      users.push(doc.data());
    });

    response.json({
      success: true,
      users: users
    });
  })
  .catch(err => {
    console.log('err', err);
  });