? Я поддерживаю SDK ( kreait / firebase- php), который вы используете:)
Ваша ошибка говорит
Call to undefined method Kreait\Firebase\Auth::signInWithEmailAndPassword()
но я не вижу этот метод в вашем коде. Метод с именем signInWithEmailAndPassword()
также не существует, и вы используете методы для инициализации SDK, который уже давно устарел - пожалуйста, убедитесь, что вы используете последнюю версию SDK (4.40 на тот момент этого комментария).
Как только вы это сделаете, у вас будет доступ к методу Auth::verifyPassword($email, $password)
.
Ваш код может выглядеть следующим образом:
<?php
// includes/db.php
require __DIR__.'/vendor/autoload.php';
use Kreait\Firebase\Factory;
$factory = (new Factory())->withServiceAccount(__DIR__.'/google-service-account.json');
$auth = $factory->createAuth();
// no closing "?>"
<?php
include("includes/db.php");
// Have a look at https://www.php.net/filter_input to filter user input
if (isset($_POST['signup'])) {
$email = $_POST['emailSignup'];
$pass = $_POST['passSignup'];
$user = $auth->createUserWithEmailAndPassword($email,$pass);
header("Location:index.php");
exit;
}
$email = $_POST['emailSignin'];
$pass = $_POST['passSignin'];
if ($email && $pass && $user = $auth->verifyPassword($email, $pass)) {
session_start();
$_SESSION['firebase_user_id'] = $user->id;
header("Location:home.php");
exit;
}
echo "Authentication failed";
Если у вас есть дополнительные вопросы относительно SDK, я хотел бы пригласить вас в сообщество Discord, посвященное SDK .