Firestore在同一UID下添加多个数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firestore在同一UID下添加多个数据相关的知识,希望对你有一定的参考价值。

我问了一个关于类似主题的问题并得到了解答,但又遇到了一些问题,所以他们告诉我在另一个话题下提问。

我正在尝试使用UID将数据添加到Firestore云。我有UID,并添加UID没有问题,但当我想添加另一个它删除旧数据并重写它。我想在同一个UID下添加多个数据。

$('#form').submit(function(e) {
e.preventDefault();
let name = $('[name = name]').val();
let cityLAT = $('[name = cityLAT]').val();
let cityLONG = $('[name = cityLONG]').val();
let user = firebase.auth().currentUser;
let uid;
if(user != null) {
    uid = user.uid;
}
const ref = db.collection('campaigns').doc(uid);
ref.set({ name: name,
cityLAT: cityLAT,
cityLONG: cityLONG },{ merge: true });
$('[name = name]').val('');
$('[name = cityLAT]').val('');
$('[name = cityLONG]').val('');
答案

如果您想“使用相同的uid添加数据”(即使用以下DocumentReferencedb.collection('campaigns').doc(uid)将数据添加到文档中),您有两种可能性:

  1. 使用update()方法“更新此DocumentReference引用的文档中的字段”。但是,您必须知道“如果应用于不存在的文档,则更新将失败”。
  2. 使用set()方法和merge选项,即使文档不存在也可以使用。另见本文档:https://firebase.google.com/docs/firestore/manage-data/add-data#set_a_document

因此,在您的情况下,使用上面解释的set()方法看起来像:

const ref = db.collection('campaigns').doc(uid);
ref.set(
   { name: name,
     cityLAT: cityLAT,
     cityLONG: cityLONG },
   { merge: true }
);

以上是关于Firestore在同一UID下添加多个数据的主要内容,如果未能解决你的问题,请参考以下文章

iOS - Firestore 文档同时写入多个

如何在flutter的firestore中使用uid更新用户数据

Firestore上的空uid尝试使用flutter和firebase保存数据

添加新字段或更改所有 Firestore 文档的结构

如何从 firestore 读取其他用户(不是 user.uid)的数据

Firestore 用户管理最佳实践?