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。我不知道为什么。进一步的调查显示,当树上有更多的孩子时,我无法获得价值。也许你可以看看?我将不胜感激。