javascript - 如何使用 Firebase Modular SDK (V9) 按 ID 更新文档?

标签 javascript firebase google-cloud-firestore next.js

每次用户登录时,此代码都会创建一个新文档,但我的任务是更新现有的相同用户 ID 文档(如果存在),否则创建一个新文档。我如何在 V9 Firebase 中做到这一点?

当前代码

setDoc(
  query(collectionRef),
  //     db.collection('users').doc(user.uid).set(

  {
    email: user.email,
    lastSeen: serverTimestamp(),
    photoURL: user.photoURL
  }, {
    merge: true
  }
);

访问文档 UID 的旧代码:

最佳答案

setDoc() 中的第一个参数应该是 DocumentReference :

import { doc, setDoc } from "firebase/firestore"

const docRef = doc(db, "users", user.uid);

setDoc(docRef, {
  email: user.email,
  lastSeen: serverTimestamp(),
  photoURL: user.photoURL
}, {
  merge: true
}).then(() => console.log("Document updated"));

关于javascript - 如何使用 Firebase Modular SDK (V9) 按 ID 更新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71527976/

相关文章:

javascript - 限制 Firestore 中的删除权限

node.js - 使用适用于 iOS 应用的 Firebase、Node.js 和 Google Cloud Messaging 推送通知

ios - 在 Mainstoryboard 上添加 Facebook 登录按钮

javascript - 云函数正在将 NaN 写入 firestore

android - 如何查询 Firebase Firestore 引用数据类型?

javascript - 更新 Firestore 文档时可以动态更改键和值吗?

javascript - 使用javascript在特定时间间隔播放视频并发布消息

javascript - HighChart 工具提示断字问题

每个循环的 Javascript

javascript - Jquery 将值附加到文本区域在 ajax 第二次提交之前不起作用