I'm trying to create a user profile that states that that profile is from one of the business owners in my app. It is supposed to create the profile and then merge info such as the 'roles' array with 'businessOwner' in it and also add the 'businessId'.

Sometimes, the code will work seamlessly. At other times, only the roles and the businessId will be passed to the created user (and all of the other information won't!).

```
  async function writeToFirebase(values) {
    authService.createUserWithEmailAndPassword(values.user.email, values.user.senha).then(
      async function (user) {
        userService.createUserProfileDocument(values.user)
        const uid = user.user.uid
        const userRef = await userService.doc(uid)
        console.log('userRef', userRef)
        try {
          values.user.uid = uid
          const { id } = await businessPendingApprovalService.collection().add(values)
          await userRef.set({ roles: ['businessOwner'], businessId: id }, { merge: true }) 
        } catch (error) {
          console.error('error merging info')
        }
      },
      function (error) {
        var errorCode = error.code
        var errorMessage = error.message
        console.log(errorCode, errorMessage)
      },
    )
  }

```

This is createUserWithEmailAndPassword:

```
async createUserProfileDocument(user, additionalData) {
    if (!user) return
    const userRef = this.firestore.doc(`users/${user.uid}`)
    const snapshot = await userRef.get()
    if (!snapshot.exists) {
      const { displayName, email, photoURL, providerData } = user
      try {
        await userRef.set({
          displayName,
          email,
          photoURL, 
          ...additionalData,
          providerData: providerData[0].providerId,
        })
      } catch (error) {
        console.error('error creating user: ', error)
      }
    }
    return this.getUserDocument(user.uid)
  }

```