Удалить пользователя с помощью Vue. js и Firebase - PullRequest
0 голосов
/ 30 апреля 2020

Я не могу удалить аккаунт из firebase в vue. js. Я использовал документацию Firebase. Вот кнопка для удаления:

<template>
[...]
      <div class="text-center">
        <button type="button" class="btn text-white my-4" @click="$emit('deleteUser')">Delete account</button>
      </div>
[...]
</template>

Вот метод:

<script>
[...]
import firebase from "firebase"
import {router} from '../main'

export default {
    [...]
  },
  methods: {
    [...]
  deleteUser () {
    //const userRef = firebase.auth().currentUser;

    this.usersRef.remove().then(function() {
      // User deleted.
      console.log("User deleted")
      router.push('/')
    }).catch(err => {
          this.error = err.message
      // An error happened.
      console.log("User NOT deleted")
    });
  }
};
</script>

Кто-то может помочь? Аккаунт еще и удалить нельзя. Ноль информации в консоли.

1 Ответ

0 голосов
/ 30 апреля 2020

Если вы хотите удалить пользователя, существующего в аутентификации Firebase, у вас есть две возможности:

1 / Использование JavaScript SDK (так как ваше приложение сделано с Vue. js)

Вы вызываете метод delete() следующим образом:

const user = firebase.auth().currentUser;
user.delete()
.then(() => {
   //....
})
.catch(err => {
  if (err.code === "auth/requires-recent-login") {
     //Re-authenticate the user and call again the Vue.js method
  } else {
     //....
  }
})

Обратите внимание, что этот метод "требует, чтобы пользователь недавно вошел в систему. Если это требование не не встретились, попросите пользователя снова пройти аутентификацию и затем наберите firebase.User.reauthenticateWithCredential ". Ошибка с кодом auth/requires-recent-login выдается, если время последнего входа пользователя не соответствует порогу безопасности.

Таким образом, только зарегистрированный пользователь может вызвать этот метод из front-end , для удаления его / ее собственной учетной записи.

2 / Использование Admin SDK

Вы можете использовать Admin SDK deleteUser() Метод, например, в облачной функции.

В этом случае нет необходимости регистрировать пользователя, так как это выполняется в серверной части и, следовательно, можно удалить любого пользователя. Например, у вас может быть функция Callable Cloud, запускаемая администратором.

...