如何发送非持久性值到云火库?

我想发送一些 value for a fieldCloud Firestore但我不想成为 persist(saved)Cloud Firestore.

编码。

const message = {
  persistentData: {
     id: 'dSXYdieiwoDUEUWOssd',
     text: 'Hi dear how are you',
     date: new Date();
  },

  nonPersistentData: {
    securityCode: 393929949
  }
};

db.collection('messages').doc(message.persistentData.id).set(message).catch(e => {});

在上面的代码中,我想 persit (save) persistentData但我不想 save nonPersistentData online nor offline因为我只需要他们检查真实的数据在 Firestore rule. 所以我不希望他们应该是 accessiblecache(offline) or server(online)

解决方案:

这在firestore中是根本不可能的。有一个类似的问题 此处. 你需要将数据分为公共数据(持久性)和私有数据(非持久性)。一个可能的解决方案是

  1. 在客户端,将包含securityCode的私有数据推送到一个名为securityCodes的新集合中,并存储新条目的id.因为你不希望这些信息对任何人开放,你可以添加一个安全规则。
match /securityCodes/{securityCode} {
  // No one can read the value from this collection, but only create
  allow create: true;
}
  1. 在您的公共数据中,添加之前添加的文档的id
data = {
  id: 'dSXYdieiwoDUEUWOssd',
  text: 'Hi dear how are you',
  date: new Date(),
  securityId: <id of the secretCode entry>
}
  1. 在您的安全规则中,使用与公共数据一起发送的securityId来获取秘密代码。例子-
match /collectionId/documentId {
  allow create: if get(/secretCodes/$(request.resource.data.secretId)) == 'someknowncode'
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

我可以用同一个用户从两个或多个地方开发一个git repo吗?

2022-9-8 17:36:20

未分类

如何在pandas应用中使用返回numpy数组的函数?

2022-9-8 17:36:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索