使用聚合物将匿名帐户合并到firebase中的电子邮件和密码帐户

时间:2017-07-08 12:52:08

标签: firebase polymer firebase-authentication

我正在使用聚合物和firebase创建一个Web应用程序,我希望能够合并匿名登录的帐户,以便能够合并到电子邮件和密码帐户。

我找到了关于如何实现这一目标的官方文档 https://firebase.google.com/docs/auth/web/anonymous-auth ,但是当我尝试它时,它不起作用。

文档提供了代码示例

auth.currentUser.link(credential).then(function(user) {
  console.log("Anonymous account successfully upgraded", user);
}, function(error) {
  console.log("Error upgrading anonymous account", error);
});

我很困惑,因为这是#34; auth"变量突然出现在哪里。

我尝试替换my元素的用户属性

<firebase-auth 
  id="auth"
  user="{{user}}"
  on-error="handleError">
</firebase-auth>

,但它给了我以下错误:

Uncaught TypeError: this.user.link is not a function

我应该为&#34; auth&#34;提供什么变量?在这个例子中?或者,如何使用polymerfire将匿名帐户合并到电子邮件和密码帐户?

2 个答案:

答案 0 :(得分:1)

Polymer&amp; firebase-auth元素具有auth属性。所以你可以绑定它:

<firebase-auth 
  id="auth"
  user="{{user}}"
  auth="{{auth}}"
  on-error="handleError">
</firebase-auth>

&安培;然后直接在你的包含元素中使用this.auth,或者你可以直接在你的代码中引用它,而不是像以下那样绑定:

this.$.auth.auth

旁注 - 让firebase-auth的文档给出示例元素id&#34; auth&#34;会让人感到困惑。导致&#34; auth.auth&#34;上方。

答案 1 :(得分:1)

好的,我明白了。

原来,&#34;链接&#34;方法已被弃用,而我们必须使用&#34; linkWithCredential&#34;,因此代码将是

this.$.auth.auth.currentUser.linkWithCredential(credential).then(function(user) {
  console.log("Anonymous account successfully upgraded", user);
}, function(error) {
  console.log("Error upgrading anonymous account", error);
});