gpt4 book ai didi

javascript - DocumentReference 返回敏感数据 - Firestore

转载 作者:行者123 更新时间:2023-12-02 22:06:39 25 4
gpt4 key购买 nike

我有一个“post”和“user”集合,在帖子中我附加了“userId”作为对用户文档的引用

一切都很完美,除了我在 Post 文档上调用的 get().data() 方法暴露了所有敏感数据(我将通过 Express 服务器发送给客户端)

const ref = (await firestore.doc(...).get()).data()
res.json({
success: true,
msg: ref,
});

这是我在 ref 变量中得到的:

{
"success": true,
"msg": {
"foo": "bar",
"userId": {
"_firestore": {
"_settings": {
"credentials": {
"private_key": "-----BEGIN PRIVATE KEY---------END PRIVATE KEY-----\n", <--- Big problem
"client_email": "..."
},
"projectId": "cpanel-9ac21",
"firebaseVersion": "8.9.0",
"libName": "gccl",
"libVersion": "3.3.3 fire/8.9.0",
"servicePath": "firestore.googleapis.com",
"port": 443,
"clientConfig": {},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/datastore"
]
},
"_settingsFrozen": true,
"_serializer": {},
"_projectId": "cpanel-9ac21",
"_lastSuccessfulRequest": 1578712168345,
"_backoffSettings": {
"initialDelayMs": 100,
"maxDelayMs": 60000,
"backoffFactor": 1.3
},
"_preferTransactions": false,
"_clientPool": {
"concurrentOperationLimit": 100,
"maxIdleClients": 1,
"activeClients": {},
"terminated": false
}
},
"_path": {
"segments": [
"users",
"TXMF00S2PugwdwO5ge3vwQA6pV63"
]
}
},
"foo": "bar"
}
}

我也在网上搜索过,但遗憾的是没有找到答案/解决方案

最佳答案

对于 Firestore,将公共(public)数据与私有(private)数据分开的典型方法是将它们放入不同的集合中。因此,如果您有一篇文章,并且需要划分公共(public)数据和私有(private)数据,那么您可能有两个集合:“posts-public/{id}”和“posts-private/{id}”。或者您可以在同一 ID 下使用子集合:“posts/{id}/public”和“posts/{id}/private”。

拆分集合后,您还可以使用不同的安全规则来保护它们,这些规则仅允许访问用户应该能够看到的内容。如果您根本不希望用户看到任何私有(private)数据,那么该集合不应授予访问权限。

关于javascript - DocumentReference 返回敏感数据 - Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com