2016-01-08 3 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" : "[email protected]", 
     "logo" : "J.jpg", 
     "nome" : "Jequiti Cosméticos 5" 
     } 
    }, 
} 

*

Почему два ключа ??? Откуда появился этот «-K7X ...»?

+0

[пользовательData.uid]? – Jay

+0

его динамический ключ из параметра userData функции – Jorgeley

+0

lol. Да, прости. Я знал это, я утверждал, что это первая часть данных, которые должны быть записаны на рассматриваемый узел. См. Мой ответ. – 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

В этом случае нажмите галочку рядом с вопросом Джея, чтобы принять ее. Также обратите внимание, что StackOverflow не является форумом. Твой ответ на ответ Джея появляется выше его ответа для меня. Если у вас есть продолжение для Джей, добавьте комментарий к его ответу. Если вы считаете, что ваш код делает его ответ более полезным: отредактируйте его ответ и добавьте в него свой код. –

1

push() auto генерирует ключ к узлу, а затем userData.uid является дочерним по электронной почте, логотипу и ному, как его дети.

От Firebase Saving Data:

Каждый раз, когда вы звоните нажим() база данных генерирует уникальный идентификатор, как

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

спасибо, ребята! теперь я понял, push auto генерирует ключ, поэтому мне нужно использовать set, потому что я хочу UserData.uid как ключ. – Jorgeley

+0

теперь я сталкиваюсь с другой проблемой, когда я использую «set», чтобы заменить ее более старым, если я использую дважды только последнее. Я хочу использовать «userData.uid» в качестве ключа для всех моих «fornecedores», но используя set, он заменяет старых. – Jorgeley

+0

Я думаю, что мне нужно использовать push и отказаться от попытки использовать 'userData.uid' в качестве ключа – Jorgeley

Смежные вопросы