Я сохраняю пользовательский объект в localstorage при создании (чтобы быть уверенным, что я смогу использовать его позже внутри пользовательской функции, за пределами authStateChanged):
const promise = auth.createUserWithEmailAndPassword(email, pass);
promise.then(e => {
var user = firebase.auth().currentUser;
localStorage.setItem('fireUser', JSON.stringify(user));
user.sendEmailVerification();
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
});
, затем я получаю его внутри моегопользовательская функция ниже, она работает, когда используется как user.uid
, но выдает ошибку «user.delete не функция», когда используется как user.delete()
, почему?переменная user
выглядит так в localStorage:
моя пользовательская функция:
var myTimer;
function validTimer(timerValid){
var user = JSON.parse(localStorage.getItem('fireUser'));
// var buser = firebase.auth().currentUser; <-- doesn't work here
myTimer = setInterval(function() {
timerValid++;
localStorage.setItem('fireTimer', timerValid);
if (timerValid == 22) {
// delete in database
var userId = user.uid;
var ref = firebase.database().ref().child('users');
ref.child(userId).once("value", function(snapshot){
if (snapshot.exists()){
database.ref("users/"+userId).remove();
}
});
// delete account
user.delete().then(function() { // this says user.delete is not a function
}).catch(function(error) {
});
}
}, 1000);
}