2016-11-10 4 views
1

Я новичок в Polymer, и я застрял в настройке данных базы данных. Мне удалось выполнить работу по проверке подлинности электронной почты, и мне нужно сохранить данные пользователя после создания пользователя. Я инициализирую приложение с помощью элемента firebase-app.Как получить ссылку на Firebase при использовании Polymerfire?

Вот важная часть:

this.$.auth.createUserWithEmailAndPassword(email, pass).then(function (user) { 
        user.sendEmailVerification(); 
        document.getElementById("emaildialog").toggle(); 
        var view = document.getElementById("r_view"); 

        firebase.database().ref('/user/' + user['uid']).set({ 
         name: view.name, 
         surname: view.surName 
        }).catch(function (err) { 
         console.log(err.message); 
        }); 
       }) 

Пользователь успешно создан, но пользовательские данные не будут сохранены и

firebase.database is not a function"

ошибка возникает. Наверное, это потому, что у меня нет доступа к функции firebase.database. Я нашел many ways, как решить проблему с использованием чистого JavaScript, но я не уверен, что такое официальный «Полимерный путь».

EDIT: Я до сих пор не могу заставить его работать. Мне удалось получить ссылку на объект приложения, но похоже, что метода базы данных нет. Я написал простую функцию для отладки:

debugFunction: function() { 
     if (!!this.user) { 
      var fb = this.$.auth.app; 
      console.log(!!fb); // Output is true, 
      var database = fb.database(); 
     } 
    } 

Я получаю «Uncaught TypeError: fb.database не является функцией (...)» еще раз.

Заранее спасибо, Ян

ответ

2

Вы можете получить ссылку из firebase приложения внутри вашего firebase-AUTH элемента. Убедитесь, что вы делаете это за пределами функции обратного вызова, поэтому вам не придется иметь дело с получением правильной области this. Если вам нужно, вы можете сделать .bind или функции стрелок.

var app = this.$.auth.app; 

Тогда после этого вы можете сделать app.database() в качестве замены для firebase один.