我可以使用Firebase Admin SDK for Node重置用户的密码吗?

时间:2017-09-25 12:01:31

标签: node.js firebase firebase-admin

Firebase提供的文档表明API提供与控制台相同的功能:

  

为了管理您的Firebase用户,必须访问Firebase控制台并不总是很方便。管理员用户管理API提供对这些相同用户的编程访问。它甚至允许您执行Firebase控制台无法执行的操作,例如检索用户的完整数据以及更改用户的密码,电子邮件地址或电话号码。

但是参考文档没有列出重置用户密码的功能。我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

这取决于'重置'的定义。你正在使用。

如果您的意思是重置为'更改',则是 - the updateUser function允许您提供新密码。请参阅文档中的以下示例:

admin.auth().updateUser(uid, {
  email: "modifiedUser@example.com",
  phoneNumber: "+11234567890",
  emailVerified: true,
  password: "newPassword",
  displayName: "Jane Doe",
  photoURL: "http://www.example.com/12345678/photo.png",
  disabled: true
})
  .then(function(userRecord) {
    // See the UserRecord reference doc for the contents of userRecord.
    console.log("Successfully updated user", userRecord.toJSON());
  })
  .catch(function(error) {
    console.log("Error updating user:", error);
  });

另一方面,如果您的意思是重置,请发送密码重置电子邮件',然后不,这似乎不是通过Admin SDK这样做的简单方法

答案 1 :(得分:2)

是的,可以。要生成密码重置链接,请提供现有用户的电子邮件。然后,您可以使用任何您喜欢的电子邮件服务发送实际的电子邮件。 Link to documentation

While True :
"""Input tags here"""
if len(ship_name_ship_window.get()) != 0 \
                or len(ship_imo_ship_window.get()) != 0 \
                or len(ISM_ship_window.get()) != 0 \
                or len(ISM_IMO_ship_window.get()) != 0:
            c.execute("INSERT INTO ships VALUES(:name, :imoship, :ism, :ismimo , null, null)",
                      {
                          'name': ship_name_ship_window.get(),
                          'imoship': ship_imo_ship_window.get(),
                          'ism': ISM_ship_window.get(),
                          'ismimo': ISM_IMO_ship_window.get()
                      })
            break
else:
     messagebox.showwarning(title='Review Needed', message='Please complete all fieds.')
     continue