Как изменить это руководство PolymerFire / Firebase для работы с электронной почтой / паролем вместо учетной записи Google? - PullRequest
0 голосов
/ 16 сентября 2018

Я хочу изменить это приложение Notes для работы с логинами электронной почты и паролями вместо использования учетных записей Google:

Создание прогрессивного веб-приложения с компонентами Firebase, Polymerfire и Polymer

<firebase-auth
  id="auth"
  app-name="notes"
  provider="google"
  signed-in="{{signedIn}}"
  user="{{user}}">
</firebase-auth>

<script>
  Polymer({is: 'note-app', behaviors: [Polymer.NoteAppBehavior],
  signIn: function() {this.$.auth.signInWithPopup();}});
</script>

Я определил метод здесь: FirebaseExtended / PolymerFire / Firebase-auth.html

Вместо signInWithPopup() мне нужно signInWithEmailAndPassword():

    /**
     * Authenticates a Firebase client using an email / password combination.
     *
     * @param  {!String} email Email address corresponding to the user account.
     * @param  {!String} password Password corresponding to the user account.
     * @return {Promise} Promise that handles success and failure.
     */
    signInWithEmailAndPassword: function(email, password) {
      return this._handleSignIn(this.auth.signInWithEmailAndPassword(email, password));
    },

1 Ответ

0 голосов
/ 19 сентября 2018

Я использую это:

<firebase-auth id="auth" user="{{user}}" on-error="_loginError"></firebase-auth>
<paper-dialog id="authDialog" modal with-backdrop>
  <paper-input label="Email" value="{{signinEmail}}"></paper-input>
  <paper-input label="Password" value="{{signinPassword}}" type="password"></paper-input>
  <div class="buttons">
    <paper-button on-click="_signIn" raised>Sign in</paper-button>
  </div>
</paper-dialog>

и доступ к аутентификации по этому:

  _signIn: function() {
    this.$.auth.signInWithEmailAndPassword(this.signinEmail, this.signinPassword)
      .then(function(response) {
        console.log(response);
      }.bind(this), function(error) {
        this.$.toast.show({text: '' + error});
      }.bind(this))
      .catch(function(error) {
        this.$.toast.show({text: '' + error});
      }.bind(this));
  },

Но сначала вам нужно включить метод аутентификации пароля электронной почты из консоли Firebase, чтобы иметь возможностьиспользовать аутентификацию по паролю электронной почты.

...