Authentication 聚合物1.0:使用<;firebase验证>;? 问题:

Authentication 聚合物1.0:使用<;firebase验证>;? 问题:,authentication,polymer,polymer-1.0,Authentication,Polymer,Polymer 1.0,除了uid,成功登录后,用户对象在元素中还有哪些属性可用? 我如何才能暴露整个对象以供查看JSON.stringify(用户)返回null 文档 例子 在下面的代码中,user.uid起作用。但是如何查看完整的user对象(而不仅仅是user.uid——请参见第60行)?我尝试了JSON.stringify(user),但没有任何效果 代码 火基位置: 提供程序类型: 匿名的 脸谱网 github 谷歌 啁啾 密码 演示Firebase帐户仅激活“匿名”、“谷歌”和“密码”

除了
uid
,成功登录后,
用户
对象在
元素中还有哪些属性可用?

我如何才能暴露整个对象以供查看
JSON.stringify(用户)
返回
null


文档

例子 在下面的代码中,
user.uid
起作用。但是如何查看完整的
user
对象(而不仅仅是
user.uid
——请参见第60行)?我尝试了
JSON.stringify(user)
,但没有任何效果


代码


火基位置:

提供程序类型: 匿名的 脸谱网 github 谷歌 啁啾 密码 演示Firebase帐户仅激活“匿名”、“谷歌”和“密码”
登录参数(JSON): 某些提供程序类型需要

特定于密码的选项:
创建用户
更改密码
重置密码 删除用户
[[信息]]
登录 注销 登录状态: {{computeLoginStatus(statusKnown,user)}

用户ID: {{user.uid} 聚合物({ 是:“x-login”, 特性:{ 提供者:{ 类型:字符串, 值:“匿名” }, 信息:{ 类型:字符串, 值:“” }, 电邮:{ 类型:字符串, 值:“” }, 密码:{ 类型:字符串, 值:“” }, 用户:{ 类型:对象, 值:null }, 已知状态:{ 类型:布尔型 } }, 登录:函数(){ var参数; 试一试{ params=JSON.parse(this.params); }捕获(e){ params=null; } 如果(this.provider=='password'){ params=params |{}; params.email=this.email; params.password=this.password; } 此.firebaseLogin.login(参数); }, 注销:函数(){ 这是$.firebaseLogin.logout(); }, errorHandler:函数(e){ this.message='错误:'+e.detail.message; }, userSuccessHandler:函数(e){ this.message=e.type+'success!'; }, createUserHandler:函数(e){ 此.firebaseLogin.createUser(this.email,this.password); }, changePasswordHandler:函数(e){ this.$.firebaseLogin.changePassword(this.email,this.password,this.newPassword); }, resetPasswordHandler:函数(e){ 此.firebaseLogin.sendPasswordResetEmail(此.email); }, computePasswordHidden:函数(提供程序){ 返回提供程序!=“密码”; }, computeCreateUserDisabled:功能(电子邮件、密码){ 返回!电子邮件| |!密码; }, computeChangePasswordDisabled:功能(电子邮件、密码、新密码){ return!email | | |!password | |!newPassword; }, computeResetPasswordDisabled:功能(电子邮件、密码){ 返回!电子邮件| |!密码; }, computeRemoveUserDisabled:功能(电子邮件、密码){ 返回!电子邮件| |!密码; }, computeLoginHidden:函数(状态已知,用户){ return!statusKnown | |!!用户; }, ComputeLogoAuthidden:函数(状态已知,用户){ return!statusKnown | |!user; }, computeLoginStatus:函数(状态已知,用户){ if(statusKnown&&user){ 返回“已登录”; } 如果(状态已知){ 返回“注销”; } 返回“未知(正在检查状态…)”; } });
这取决于提供商


谷歌
  • authData
    对象:
    user
    (root)
{


脸谱网

啁啾

github

这取决于提供商


谷歌
  • authData
    对象:
    user
    (root)
{


脸谱网

啁啾

github
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<link rel="import" href="../../polymer/polymer.html">
<link rel="import" href="../firebase-auth.html">
<dom-module id="x-login">
  <template>
    <firebase-auth id="firebaseLogin" user="{{user}}" status-known="{{statusKnown}}" location="https://polymer-tests.firebaseio.com" provider="{{provider}}" on-error="errorHandler" on-user-created="userSuccessHandler" on-password-changed="userSuccessHandler" on-password-reset="userSuccessHandler" on-user-removed="userSuccessHandler"></firebase-auth>

    Firebase location:
    <input value="https://polymer-tests.firebaseio.com" size="40" disabled>
    <br>

    Provider type:
    <select value="{{provider::change}}">
      <option>anonymous</option>
      <option>facebook</option>
      <option>github</option>
      <option>google</option>
      <option>twitter</option>
      <option>password</option>
    </select>
    <em>Only 'anonymous', 'google', and 'password' are activated for demo Firebase account</em>
    <br>

    Login params (JSON):
    <input value="{{params::input}}" id="params">
    <em>Required by some provider types</em>
    <br>

    <div hidden$="{{computePasswordHidden(provider)}}">
      <br><em>Password-specific options:</em><br>
      <input placeholder="email" value="{{email::input}}">
      <input placeholder="password" value="{{password::input}}">
      <button on-tap="createUserHandler" disabled$="{{computeCreateUserDisabled(email, password)}}">Create user</button>
      <br>
      <input placeholder="new password" value="{{newPassword::input}}">
      <button on-tap="changePasswordHandler" disabled$="{{computeChangePasswordDisabled(email, password, newPassword)}}">Change password</button>
      <br>
      <button on-tap="resetPasswordHandler" disabled$="{{computeResetPasswordDisabled(email, password)}}">Reset password</button>
      <button on-tap="removeUserHandler" disabled$="{{computeRemoveUserDisabled(email, password)}}">Remove user</button>
    </div>
    <br>
    <div id="message">[[message]]</div>
    <br>

    <button on-tap="login" hidden$="{{computeLoginHidden(statusKnown, user)}}">Login</button>
    <button on-tap="logout" hidden$="{{computeLogoutHidden(statusKnown, user)}}">Logout</button>

    <h3>Login status:</h3>
    <p>{{computeLoginStatus(statusKnown, user)}}</p>

    <h3>User ID:</h3>
    <pre>{{user.uid}}</pre>
  </template>
</dom-module>
<script>
  Polymer({
    is: 'x-login',

    properties: {
      provider: {
        type: String,
        value: 'anonymous'
      },

      message: {
        type: String,
        value: ''
      },

      email: {
        type: String,
        value: ''
      },

      password: {
        type: String,
        value: ''
      },

      user: {
        type: Object,
        value: null
      },

      statusKnown: {
        type: Boolean
      }
    },

    login: function() {
      var params;

      try {
        params = JSON.parse(this.params);
      } catch (e) {
        params = null;
      }

      if (this.provider == 'password') {
        params = params || {};
        params.email = this.email;
        params.password = this.password;
      }

      this.$.firebaseLogin.login(params);
    },

    logout: function() {
      this.$.firebaseLogin.logout();
    },

    errorHandler: function(e) {
      this.message = 'Error: ' + e.detail.message;
    },

    userSuccessHandler: function(e) {
      this.message = e.type + ' success!';
    },

    createUserHandler: function(e) {
      this.$.firebaseLogin.createUser(this.email, this.password);
    },

    changePasswordHandler: function(e) {
      this.$.firebaseLogin.changePassword(this.email, this.password, this.newPassword);
    },

    resetPasswordHandler: function(e) {
      this.$.firebaseLogin.sendPasswordResetEmail(this.email);
    },

    computePasswordHidden: function(provider) {
      return provider !== 'password';
    },

    computeCreateUserDisabled: function(email, password) {
      return !email || !password;
    },

    computeChangePasswordDisabled: function(email, password, newPassword) {
      return !email || !password || !newPassword;
    },

    computeResetPasswordDisabled: function(email, password) {
      return !email || !password;
    },

    computeRemoveUserDisabled: function(email, password) {
      return !email || !password;
    },

    computeLoginHidden: function(statusKnown, user) {
      return !statusKnown || !!user;
    },

    computeLogoutHidden: function(statusKnown, user) {
      return !statusKnown || !user;
    },

    computeLoginStatus: function(statusKnown, user) {
      if (statusKnown && user) {
        return 'Logged in';
      }

      if (statusKnown) {
        return 'Logged out';
      }

      return 'Unknown (checking status...)';
    }
  });
</script>
  uid: "string",
  provider: "string",
  token: "string",
  auth: {},
  expires: "number",
  google: {
    id: "string",
    accessToken: "string",
    displayName: "string",
    email: "string",
    profileImageURL: "string",
    cachedUserProfile: "string",
  }
}