@lisamthorpe You’re still having nesting promises and the function is a way too long (too long function are prone to bugs). You should split it.
Try Something like:
let phone, lastFourDigits, email, password, firstName, lastName;
function registerUser() {
phone = $w("#phoneInput").value;
lastFourDigits = phone.substring(phone.length - 4, phone.length);
[email, password, firstName, lastName] =
[$w("#emailInput").value, "GBSC" + lastFourDigits, $w("#firstNameInput").value, $w("#lastNameInput").value];
return wixData.query('soccerMembersDatabase')
.eq('email', email)
.skip(1)
.find()
.then(result => {
console.log("SMDatabase query results:", results);
return results.items.length > 0 ? logIn() : register();
})
.catch(err => console.log("Existing user login error:", err));
}
function logIn(isNew){
return wixUsers.login(email, password)
.then(r => {
isNew ? console.log("New user is logged in") : console.log("Existing user is logged in");
} )
.catch(err => console.log("Existing user login error:", err));
}
function register(){
return wixUsers.register(email, password, {
contactInfo: {
"firstName": firstName,
"lastName": lastName,
"phones": [phone]
}
})
.then(result => {
let status= result.status;
console.log("Register new user result status:", status);
return logIn(true);
})
.catch( (err) => console.log("New user login error:", err));
}
[FIXED]