Javascript Firebase DB snapshot.val()返回空值

Javascript Firebase DB snapshot.val()返回空值,javascript,firebase,firebase-realtime-database,firebase-admin,Javascript,Firebase,Firebase Realtime Database,Firebase Admin,我正在使用firebase admin(5.13.1)NodeJS库,在使用.val()处理.on('value')函数时遇到问题 var key = "someFirebaseKey"; db.ref().child('search/response').child(key).on('value', function(snapshot) { console.log(snapshot.val()); }) 这将返回null 但是,快照具有以下值: DataSnapshot

我正在使用
firebase admin(5.13.1)
NodeJS库,在使用
.val()
处理
.on('value')
函数时遇到问题

  var key = "someFirebaseKey";
  db.ref().child('search/response').child(key).on('value', function(snapshot) {
    console.log(snapshot.val());
  })
这将返回
null

但是,
快照
具有以下值:

DataSnapshot {
  node_: 
   ChildrenNode {
     children_: 
      SortedMap {
        comparator_: [Function: NAME_COMPARATOR],
        root_: LLRBEmptyNode {} },
     priorityNode_: null,
     indexMap_: IndexMap { indexes_: [Object], indexSet_: [Object] },
     lazyHash_: '' },
  ref_: 
   Reference {
     repo: 
      Repo {
        repoInfo_: [RepoInfo],
        app: [FirebaseApp],
        dataUpdateCount: 2,
        statsListener_: null,
        eventQueue_: [EventQueue],
        nextWriteId_: 3,
        interceptServerDataCallback_: null,
        onDisconnect_: [SparseSnapshotTree],
        persistentConnection_: [PersistentConnection],
        stats_: [StatsCollection],
        server_: [PersistentConnection],
        statsReporter_: [StatsReporter],
        transactionQueueTree_: [Tree],
        infoData_: [SnapshotHolder],
        infoSyncTree_: [SyncTree],
        serverSyncTree_: [SyncTree],
        __database: [Database] },
     path: Path { pieces_: [Array], pieceNum_: 0 },
     queryParams_: 
      QueryParams {
        limitSet_: false,
        startSet_: false,
        startNameSet_: false,
        endSet_: false,
        endNameSet_: false,
        limit_: 0,
        viewFrom_: '',
        indexStartValue_: null,
        indexStartName_: '',
        indexEndValue_: null,
        indexEndName_: '',
        index_: PriorityIndex {} },
     orderByCalled_: false },
  index_: PriorityIndex {} }
关于调试Firebase对象的方向或方法有什么想法吗

我花了一天半的时间试图修复这个问题,尝试了几种不同的调试尝试,阅读了关于这个问题的大多数StackOverflow线程,但都没有用


任何帮助都将不胜感激

根据文档,当查询位置没有数据时,返回null:

根据DataSnapshot中的数据,val()方法可能返回 标量类型(字符串、数字或布尔)、数组或对象。信息技术 也可能返回null,表示DataSnapshot为空 (不包含任何数据)


DataSnapshot对象的内部内容不能直接使用。改为使用公共API。

根据文档,当查询位置没有数据时,返回null:

根据DataSnapshot中的数据,val()方法可能返回 标量类型(字符串、数字或布尔)、数组或对象。信息技术 也可能返回null,表示DataSnapshot为空 (不包含任何数据)


DataSnapshot对象的内部内容不能直接使用。请改用公共API。

“不要直接使用DataSnapshot对象的内部内容。请改用公共API。”-您能详细说明一下您的说法吗?@MartinBraun这意味着您不应该在未记录的快照属性中到处翻找,否则您的代码可能会崩溃。好的,知道了。由于某些原因,即使数据明显存在,我也会得到null。我不知道为什么。进一步的调查显示,当树上有更多的孩子时,我无法获得价值。也许你可以看看?我将不胜感激。“DataSnapshot对象的内部内容不能直接使用。请改用公共API。”-您能详细说明一下您的声明吗?@MartinBraun这意味着您不应该在未记录的快照属性中翻找,否则您的代码可能会崩溃。好的,明白了。由于某些原因,即使数据明显存在,我也会得到null。我不知道为什么。进一步的调查显示,当树上有更多的孩子时,我无法获得价值。也许你可以看看?我将不胜感激。