Как сменить пароль с помощью Firebase в Flutter - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу изменить текущий пароль пользователя, используя Firebase в Flutter. Может ли кто-нибудь помочь мне в том, как реализовать метод смены пароля?

Ответы [ 3 ]

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

Поскольку @ Гюнтер упомянул, что функция в настоящее время все еще недоступна, вы можете использовать способ REST API firebase * для изменения пароля.

import 'package:http/http.dart' as http;
import 'dart:convert';
import 'dart:async';

Future<Null> changePassword(String newPassword) async {
  const String API_KEY = 'YOUR_API_KEY';
  final String changePasswordUrl =
      'https://www.googleapis.com/identitytoolkit/v3/relyingparty/setAccountInfo?key=$API_KEY';

      final String idToken = await user.getIdToken(); // where user is FirebaseUser user

    final Map<String, dynamic> payload = {
      'email': idToken,
      'password': newPassword,
      'returnSecureToken': true
    };

  await http.post(changePasswordUrl, 
    body: json.encode(payload), 
    headers: {'Content-Type': 'application/json'},  
  )
}

Вы можете получить idToken с помощью метода getIdToken() на FirebaseUser объекте

Вы можете получить ключ API Firebase поднастройка проекта в вашей консоли

enter image description here

0 голосов
/ 16 июля 2019

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

void _changePassword(String password) async{
   //Create an instance of the current user. 
    FirebaseUser user = await FirebaseAuth.instance.currentUser();

    //Pass in the password to updatePassword.
    user.updatePassword(password).then((_){
      print("Succesfull changed password");
    }).catchError((error){
      print("Password can't be changed" + error.toString());
      //This might happen, when the wrong password is in, the user isn't found, or if the user hasn't logged in recently.
    });
  }
0 голосов
/ 12 сентября 2018

В настоящее время это не поддерживается.

При объединении этого запроса извлечения https://github.com/flutter/plugins/pull/678 пакет Flutter firebase_auth будет поддерживать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...