我正在使用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
。
但是,snapshot
具有以下值:
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线程,但无济于事。
任何帮助将不胜感激!
答案 0 :(得分:3)
根据文档,当查询位置没有数据时,val()返回null:
根据DataSnapshot中的数据,val()方法可能会返回 标量类型(字符串,数字或布尔值),数组或对象。它 可能还返回null,表明DataSnapshot为空 (不包含任何数据)。
不要直接使用DataSnapshot对象的内部内容。请改用公共API。