首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型'QueryDocumentSnapshot<DocumentData>‘没有调用signatures.ts(2349)

类型'QueryDocumentSnapshot<DocumentData>‘没有调用signatures.ts(2349)
EN

Stack Overflow用户
提问于 2021-12-15 08:52:32
回答 1查看 336关注 0票数 2

我正在尝试创建一个表单来向我的项目中添加更多的管理员。

代码语言:javascript
复制
async addAdmin() {

    const querySnapshot = await getDocs(collection(this.db, "admin-requests"));
    querySnapshot.forEach((doc) => {
      if (doc.data().email === this.addAdminFormGroup.controls.adminEmail.value) {
        setDoc(doc(this.db, "admins", doc.data().uid), {
          name: doc.data().name,
          email: doc.data().email,
          uid: doc.data().uid
        });
      }
    }); 
  }

setDoc(doc(...

doc部件给了我一个错误:

(参数) doc: QueryDocumentSnapshot DocumentData

此表达式不可调用。类型'QueryDocumentSnapshot DocumentData‘没有调用signatures.ts(2349)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-15 14:55:02

问题是对forEach文档和函数都使用了文档名。

更改forEach文档名以解决问题,并更改快照名称以提高可读性。

正确方式:

代码语言:javascript
复制
async addAdmin() {

    const adminRequestsSnapshot = await getDocs(collection(this.db, "admin-requests"));
    adminRequestsSnapshot.forEach((adminRequestDoc) => {
      if (adminRequestDoc.data().email === this.addAdminFormGroup.controls.adminEmail.value) {
        setDoc(doc(this.db, "admins", adminRequestDoc.data().uid), {
          name: adminRequestDoc.data().name,
          email: adminRequestDoc.data().email,
          uid: adminRequestDoc.data().uid
        });
      }
    }); 
  }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70360764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档