【问题标题】:Type 'QueryDocumentSnapshot<DocumentData>' has no call signatures.ts(2349)类型 'QueryDocumentSnapshot<DocumentData>' 没有调用 signatures.ts(2349)
【发布时间】:2022-01-18 11:11:44
【问题描述】:

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

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 部分给了我一个错误:

(参数)文档:QueryDocumentSnapshot DocumentData

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

【问题讨论】:

    标签: typescript firebase firebase-authentication


    【解决方案1】:

    问题在于 forEach 文档和函数都使用了文档名称。

    更改了用于修复问题的 forEach 文档名称和快照名称以提高可读性。

    正确方法:

    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
            });
          }
        }); 
      }
    

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 1970-01-01
      • 2022-11-18
      • 2020-12-19
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      相关资源
      最近更新 更多