gpt4 book ai didi

javascript - 即使 If 语句条件有效,Else 语句也会执行

转载 作者:行者123 更新时间:2023-11-30 14:13:03 25 4
gpt4 key购买 nike

我正在使用 Google Cloud 功能来验证我的 OTP 身份验证,并且还使用 Firebase 数据库将代码保存在数据库中。

我的问题是,即使满足 If 语句条件,它也总是执行 else 语句。我正在将来自 firebase 数据库的代码和 codeValid 与用户输入进行比较。因此,我的用户输入对 code 感到满意并且 codevalid 也得到满足,但它总是移动到 else 语句。我不知道为什么。

这是我的代码

const admin = require('firebase-admin');

module.exports = function(req, res) {
if(!req.body.phone || !req.body.code) {
return res.status(422).send({error: 'Phone and Code Must be
Provided'});
}

const phone = String(req.body.phone).replace(/[^\d]/g, '');
const code = parseInt(req.body.code);

return admin.auth().getUser(phone)
.then(() => {
const ref = admin.database().ref('users/'+ phone);
return ref.on('value', snapshot => {
ref.off();
const user = snapshot.val();

if (user.code === code && user.codeValid === true) {
ref.update({ codeValid: false });
admin.auth().createCustomToken(phone)
.then(token => res.send({ token: token }))
.catch((err)=> res.status(422).send({ error:err }));
}
else {
return res.status(422).send({ error: 'Code Not Valid' });
}
});
})
.catch((err)=> res.status(422).send({ error:err }) )
}

所以,无论我输入什么,我总是得到“代码无效”。我也用 firebase 数据库交叉检查了所有值,一切都匹配。但找不到它发生的原因。

最佳答案

将此添加到您的if 条件 之上,并检查您的陈述是否真实。我认为您的数据类型可能不同,例如user.codecode。因此,您还应该使用 ==解析您的值来测试它。

// values and datatypes are equal
if (user.code === code) {
console.log('user.code === code');
}

// values and datatypes are equal
if (user.codeValid === true) {
console.log('user.codeValid === codeValid');
}

// values are equal
if (user.code == code) {
console.log('user.code == code');
}

// values are equal
if (user.codeValid == true) {
console.log('user.codeValid == codeValid');
}

有关 ===== 的区别的更多信息,请查看此答案:

Difference between == and === in JavaScript

关于javascript - 即使 If 语句条件有效,Else 语句也会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54053844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com