如何为Firestore读写请求添加自定义元数据并在Logs Explorer中查看?
Firestore读写请求添加自定义元数据并在Logs Explorer查看方案
可以实现,主要有两种可行方式:
1. 客户端SDK注入自定义元数据
通过拦截Firestore请求的方式,在请求头中添加自定义元数据,这些元数据会被记录到Firestore的请求日志中:
- Web SDK示例:
const db = firebase.firestore(); // 拦截请求并添加自定义标头 db._firestoreRequestInterceptor = (request) => { request.headers['X-Custom-Tags'] = 'user:alice,operation:document-write'; return request; }; - 在Logs Explorer中,可通过
httpRequest.requestHeaders."X-Custom-Tags"字段筛选包含该元数据的日志。
2. Cloud Functions中转时附加元数据
如果请求通过Cloud Functions中转,可直接在函数日志中添加自定义元数据字段:
- Node.js Cloud Functions示例:
exports.writeToFirestore = functions.https.onRequest(async (req, res) => { const meta = { userId: req.body.userId, action: 'create-order' }; // 将元数据写入日志 functions.logger.info('Processing Firestore write', { customMetadata: meta }); await db.collection('orders').add(req.body.orderData); res.status(200).send('Done'); }); - 在Logs Explorer中,通过
jsonPayload.customMetadata.userId这类条件即可检索到对应日志。
日志筛选示例
针对客户端注入的元数据,过滤条件可写为:
resource.type="firestore_database" AND httpRequest.requestHeaders."X-Custom-Tags"="user:alice,operation:document-write"
针对Cloud Functions的元数据,过滤条件:
resource.type="cloud_function" AND jsonPayload.customMetadata.action="create-order"
内容的提问来源于stack exchange,提问作者Roman Dronov
相关产品推荐
相关产品推荐

