0

首先,我想说我搜索了很多,但我没有找到我的错误的原因。JavaScript Firebase数据库网络未捕获SyntaxError:没有理由的意外令牌

我正在使用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()是两个不同的输入区域的结果。所以,一旦我点击一个按钮,我就会调用事件监听器,然后执行操作来编辑指定节点中的数据。

,但我得到的错误“未捕获的SyntaxError:意外的标记(”和该行是if($('#email').val().length > 8){和obiuously下一个是if($('#nome').val().length > 5){ 发生了什么事 什么不对这个代码复制,请不要标记

。?!
+2

您不能在对象声明中使用'if'语句('{}')。事先创建对象,然后将其传递给firebase的'.set()'函数。 这可能是个好消息:我很快就看不到代码中的错误,因为它很糟糕。尽力保证代码的可读性和可读性,并且将来不会有太多问题。 –

+0

@JeffHuijsmans如果你把它写成一个答案和一个如何做的样本,这将使我们能够很快解决这个问题。 –

+0

@FrankvanPuffelen就可以了! –

回答

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); 
         } 
     }) 

创建一个对象&然后通过它来设置方法。

+0

我得到这个错误:Firebase.set失败:第一个参数包含未定义的属性。这是什么意思? –

+0

是user.uid underfined? –

+0

没有它,当我只写入其中一个输入时发生。 –

1

中的对象({})的声明中,您不能使用if声明事先创建对象,然后通过它在火力的.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); 
    }; 
}); 
相关问题