首先,我想说我搜索了很多,但我没有找到错误的原因。
我正在使用firebase数据库,我想编辑一个特定的孩子。 我在html页面中这样做:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
var uid = user.uid;
const databases = firebase.database().ref().child('Utenti').child(uid).set({
if($('#email').val().length > 8 ){
email: $('#email').val(), //email dal text input email ecc....
}
if($('#nome').val().length > 5 ){
named : $('#nome').val(),
}
tipologia : 'Utente normale',
uid : user.uid
});
};
});
现在我的$('#email').val()
和我的$('#nome').val()
是两个不同输入区域的结果。所以,一旦我点击一个按钮,我就会调用事件监听器,然后执行操作来编辑指定节点中的数据。
但是我收到错误“Uncaught SyntaxError:Unexpected token(”和行if($('#email').val().length > 8 ){
,而且下一个是if($('#nome').val().length > 5 ){
。
发生了什么?
这段代码有什么问题?请不要标记为重复!
答案 0 :(得分:1)
您无法在对象声明(if
)中使用{}
语句。事先创建对象,然后将其传递给firebase的.set()
函数。
示例:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
var uid = user.uid;
var setObj = {
tipologia: 'Utente normale',
uid: user.uid
};
if($('#email').val().length > 8 ) setObj.email = $('#email').val();
if($('#nome').val().length > 5 ) setObj.named = $('#nome').val();
const databases = firebase.database().ref().child('Utenti').child(uid).set(setObj);
};
});
答案 1 :(得分:0)
使用此
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
var uid = user.uid;
var obj={};
if($('#email').val().length > 8 ){
obj["email"]=$('#email').val();
}
if($('#nome').val().length > 5 ){
obj["named"]=$('#nome').val();
}
obj["tipologia"]='Utente normale';
obj["uid"]=user.uid;
const databases = firebase.database().ref().child('Utenti').child(uid).set(obj);
}
})
创建一个对象&然后将其传递给set方法。