簡體   English   中英

如何使用 Node.js 和“firebase-admin”SDK 查詢 Firebase?

[英]How to query Firebase with Node.js and "firebase-admin" SDK?

像這樣初始化 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();

結果我得到了這個 object:


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 object的內部結構。

要在其中獲取文檔,請檢查其docs屬性。 例如:

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

請注意,這與 Firebase 文檔中關於從集合中獲取所有文檔的示例非常接近,因此我建議在開發時保持方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM