AngularFire的ChangePassword错误回调不起作用



我正在尝试使用firebase changePassword()函数和错误回调。

changePassword: function(email, oldPassword, newPassword){
      return auth.$changePassword(email, oldPassword, newPassword).then(function(error) {
console.log(error);
});

脚本是有效的和工作。然而,错误回调不会。例如,当输入错误的oldpassword时,什么也不会发生,也不会记录到控制台。当一切都正确完成,并且密码被成功更改时,错误将被记录到控制台,并且似乎未定义。

有人有类似的问题/知道我做错了什么?

谢谢

AngularFire的$changePassword方法返回一个promise。当使用期货/承诺时,标准与node.js风格的回调不同,因为错误不会在成功回调中返回,而是传递给失败回调(传递给失败回调的第二个函数)。

您还可以利用特殊的finalcatch方法作为then(success, failure)的快捷方式。这允许以复杂的方式链接顺序事件:

stepOne()
  .then(stepTwo)
  .then(stepThree)
  .then(stepFour)
  .catch(function(error) {
     console.error(error);
  });

注意我们只处理一个地方的错误。每个"步骤"只有在前一步成功时才会被触发,所以我们不需要经常包含if/then/else逻辑来处理每个点的失败。

所以,为了转换,API是这样使用的:

$changePassword(...).then(/* success */, /* failure */);

或者在你的情况下:

changePassword: function(email, oldPassword, newPassword){
      return auth.$changePassword(email, oldPassword, newPassword).catch(function(error) {
console.log(error); });
   // or...
   // return auth.$changePassword(...).then(null, function(error) { ... });
});

相关内容

  • 没有找到相关文章

最新更新