如何使用 Node.js 和 "firebase-admin" SDK 查询 Firebase?



像这样初始化Firebase之后:

import * as admin from "firebase-admin"
const firebaseApp = admin.initializeApp({
credential: admin.credential.cert(keys),
})
export const db = firebaseApp.firestore()

我想要得到一个集合("播放器"(的所有文档。我使用这个:

const ref = db.collection('players');
const allPlayers = await ref.get();

结果我得到了这个对象:


QuerySnapshot {
[1]   _query: CollectionReference {
[1]     _firestore: Firestore {
[1]       _settings: [Object],
[1]       _settingsFrozen: true,
[1]       _serializer: [Serializer],
[1]       _projectId: 'grampsio-ds-verify',
[1]       registeredListenersCount: 0,
[1]       bulkWritersCount: 0,
[1]       _backoffSettings: [Object],
[1]       _clientPool: [ClientPool]
[1]     },
[1]     _queryOptions: QueryOptions {
[1]       parentPath: [ResourcePath],
[1]       collectionId: 'players',
[1]       converter: [Object],
[1]       allDescendants: false,
[1]       fieldFilters: [],
[1]       fieldOrders: [],
[1]       startAt: undefined,
[1]       endAt: undefined,
[1]       limit: undefined,
[1]       limitType: undefined,
[1]       offset: undefined,
[1]       projection: undefined,
[1]       kindless: false,
[1]       requireConsistency: true
[1]     },
[1]     _serializer: Serializer {
[1]       createReference: [Function (anonymous)],
[1]       createInteger: [Function (anonymous)],
[1]       allowUndefined: false
[1]     },
[1]     _allowUndefined: false
[1]   },
[1]   _readTime: Timestamp { _seconds: 1660695591, _nanoseconds: 108996000 },
[1]   _size: 1,
[1]   _materializedDocs: null,
[1]   _materializedChanges: null,
[1]   _docs: [Function (anonymous)],
[1]   _changes: [Function (anonymous)]
[1] }

我如何从中获得两个预期的文档,或者查询已经失败?

我的猜测是您执行了console.log(allPlayers),它显示了QuerySnapshot对象的内部。

要在其中获取文档,请检查其docs属性。例如:

allPlayers.docs.forEach((docSnapshot) => {
console.log(docSnapshot.id, docSnapshot.data());
})

请注意,这与Firebase文档中关于从集合中获取所有文档的示例非常接近,因此我建议在开发时保持这一点。

最新更新