开发者问题收集

typeError:(0,_firestore.default)(...)。集合(...)。doc(...)。添加不是函数

2020-11-01
380

我尝试在 Firebase 中保存数据,但控制台上出现错误:

TypeError: (0 , _firestore.default)(...).collection(...).doc(...).add is not a function

当我使用下面这段没有 .doc() 的代码时,它可以工作。

createUser: async (user) => {

        try{
           await auth().createUserWithEmailAndPassword(user.email,user.password)
            const uid = Firebase.getCurrentUser().uid;           

            const teste = firestore().collection('users').add({
                name: user.name,
                email: user.email
            })

            delete user.password
            
            return{...user, uid}

        }catch(erro){
            console.log('Show:', erro)
        }
        
    }

但是当我使用 .doc () 时,我总是收到该错误。看起来文档不起作用

createUser: async (user) => {

        try{
           await auth().createUserWithEmailAndPassword(user.email,user.password)
            const uid = Firebase.getCurrentUser().uid;           

            const teste = firestore().collection('users').doc(uid).add({
                name: user.name,
                email: user.email
            })

            delete user.password
            
            return{...user, uid}

        }catch(erro){
            console.log('Show:', erro)
        }
        
    }

此函数在 Firebase 身份验证 中创建一个用户并获取所创建用户的 id uid 。我想使用此 uid 创建一个新集合,并且 doc()uid 相同>

1个回答

不要使用“add”,而要使用“set”。

const teste = firestore().collection('users').doc(uid).set({
            name: user.name,
            email: user.email
        })

因为 add 用于生成随机唯一 ID。

说明此内容的文档。

Javand1019
2021-09-14