2016-01-08 70 views
1

firebase像我母亲一样无情地击败我。 看我的代码:使用“userData.uid”作为密钥

ref.createUser({ 
      email : $("#email").val(), 
      password : $("#senha").val() 
     }, function(error, userData) { 
      if (error) { 
       alert("Nao foi possivel cadastrar: "+error); 
      } else { 
       ref.child("fornecedores").push({ 
        [userData.uid]:{ 
         email: $("#email").val(), 
         logo: nome+".jpg", 
         nome: $("#nome").val() 
        } 
       },function(error) { 
        if (error) { 
         alert("Nao foi possivel salvar: " + error); 
        } else { 
         alert("Seus dados foram salvos!: "+userData.uid); 
        } 
       }); 
      } 
    }); 

一切正常,没有错误,但看看我的JSON: *

{ 
    "fornecedores" : { 
    "-K7XNT_UrCyuM4KLfptO" : { 
     "5b0beab0-d32a-4115-b346-25a8d3e1fffe" : { 
     "email" : "je[email protected]", 
     "logo" : "J.jpg", 
     "nome" : "Jequiti Cosméticos 5" 
     } 
    }, 
} 

*

为什么有两个键???这个“-K7X ...”来自哪里?

+0

[userData.uid]? – Jay

+0

它的功能 – Jorgeley

+0

的参数userData的动态密钥。是的,抱歉。我知道这一点,我说这是写入有问题的节点的第一部分数据。看到我的答案。 – Jay

回答

0

它可以作为周杰伦表示,感谢!

ref.createUser({ 
      email : $("#email").val(), 
      password : $("#senha").val() 
     }, function(error, userData) { 
      if (error) { 
       $("#load").css("display","none"); 
       alert("Nao foi possivel salvar: "+error); 
      } else { 
       ref.child("fornecedores").child(userData.uid).set({ 
        email: $("#email").val(), 
        logo: nome+".jpg", 
        nome: $("#nome").val() 
       },function(error) { 
        $("#load").css("display","none"); 
        if (error) { 
         alert("Nao foi possivel salvar: " + error); 
        } else { 
         alert("Seus dados foram salvos!: "+userData.uid); 
        } 
       }); 
      } 
    }); 
+0

在这种情况下,请单击Jay问题旁边的复选标记以接受它。另请注意,StackOverflow不是论坛。你对Jay的回答的回应显示在他的答案上。如果你有一些跟进杰伊,请在他的回答中添加评论。如果你认为你的代码使他的答案更有用:编辑他的答案并添加你的代码。 –

1

push()自动生成节点的密钥,然后userData.uid是带有电子邮件,徽标和nome的子节点,因为它是子节点。

从火力地堡Saving Data

每次调用推送时间()你的数据库生成一个唯一的ID,像

messages/users/<unique-user-id>/<username> 
+0

谢谢你们!现在我明白了,推自动生成一个密钥,所以我必须使用set,因为我想将userData.uid作为密钥。 – Jorgeley

+0

现在我面临其他问题,当我使用'设置'它替换旧的,如果我使用两次只是最后出现。我想要的是使用'userData.uid'作为我的所有'fornecedores'的关键,但使用设置替代老年人。 – Jorgeley

+0

我想我必须使用推,并放弃尝试使用'userData.uid'作为键 – Jorgeley