首页 > 解决方案 > Wordpress 页面 - 结合 firebase auth 和 firestore PHP

问题描述

我开发了一个带有原生反应的移动应用程序,我使用 firebase 作为后端。现在我正在为该应用程序开发一个带有 wordpress 的网站,我需要在我的网站中使用 firebase 数据库(firestore)和身份验证。

所以我在我的网站上有一个注册表单,我正在使用一个动作挂钩来获取用户输入的数据。现在我想使用该数据并使用 firebase auth 对用户进行身份验证。

我现在在我的应用程序中使用了 Javascript 中的 firebase 函数,但在这种情况下,我需要 PHP。

我认为 Firebase-Admin-SDK for PHP 是正确的选择。 https://firebase-php.readthedocs.io/en/latest/

不幸的是,我真的不知道如何使用它。

我创建了一个带有作曲家依赖项的 wordpress 插件,并通过 FTP 将其上传到我的 wordpress 站点。该插件也被激活。

使用以下代码,我尝试在 firebase 中创建一个虚拟用户。

不幸的是,我的火力库中没有任何新记录。我不知道为什么它不起作用,而且我对 PHP 和 wordpress 还很陌生,所以我不知道如何解决这个问题。我知道钩子被调用了。

<?php
    /**
     * Plugin Name: Own Functions
     * Plugin URI:
     * Description: PHP code
     * Author: xxx
     * Version: 2.1.91
     * Text Domain: insert-php
     * Domain Path: /languages/
     * Author URI:
     */

    require __DIR__.'/vendor/autoload.php';

    use Kreait\Firebase\Factory;
    use Kreait\Firebase\ServiceAccount;

    $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/google-service-account.json');

    $firebase = (new Factory)
    ->withServiceAccount($serviceAccount)
    ->create();

    $auth = $firebase->getAuth();


 add_action('swpm_front_end_registration_complete_user_data', 'registration_callback_firebase');
    function registration_callback_firebase ($member_info)
    {
        $userProperties = [
        'email' => 'user@example.com',
        'emailVerified' => false,
        'phoneNumber' => '+15555550100',
        'password' => 'secretPassword',
        'displayName' => 'John Doe',
        'photoUrl' => 'http://www.example.com/12345678/photo.png',
        'disabled' => false,
        ];

        $createdUser = $auth->createUser($userProperties);

        // This is equivalent to:

        $request = \Kreait\Auth\Request\CreateUser::new()
        ->withUnverifiedEmail('user@example.com')
        ->withPhoneNumber('+15555550100')
        ->withClearTextPassword('secretPassword')
        ->withDisplayName('John Doe')
        ->withPhotoUrl('http://www.example.com/12345678/photo.png');

        $createdUser = $auth->createUser($request);
}

这是正确的尝试吗?或者是否可以在这个 PHP 动作钩子中调用一个 javascript 函数(并传递输入的数据)并用 javascript 做所有事情?

如果这是正确的方式或我如何实现目标,我将不胜感激。

标签: phpwordpressfirebasepluginsfirebase-authentication

解决方案


推荐阅读