用户自定义标识符php,php – 如何在Firebase自定义身份验证中填充`identifier`和`providers`?...

如果附加到用户的信息与“登录方法”部分(

https://console.firebase.google.com/project/_/authentication/providers)中的一个或多个给定提供者匹配,则“提供者”列将仅显示图标.

自定义提供程序没有明确的图标,Firebase不知道在“标识符”列中显示什么(UID最后已经在其自己的列中).

但是,您可以通过预先创建列来显示列的显示(意味着:在第一次签名之前),或者在创建用户条目后更新用户信息.

我准备了一个示例,显示哪个字段组合可以显示哪个:

550af7ecff7730e382fcfca4693397dd.png

请注意:

>显示名称无效:如果它是唯一提供的数据,则认为该用户是匿名的.

>电子邮件密码与“电子邮件/密码”提供商匹配

>电话号码将始终与“电话”提供商匹配

>即使已禁用提供程序,匹配提供程序的图标也将显示在列中.

>电子邮件和电话号码必须是唯一的.如果您的应用程序允许多个用户使用相同的电子邮件地址/电话号码,那么如果您只想查看有关Firebase项目用户的更多信息,则会遇到麻烦.

你可以通过Firebase Auth REST API创建和更新用户,但我建议使用官方的Firebase Admin SDKs SDK之一 – 如果你想坚持PHP,我碰巧知道一个非官方的:kreait/firebase-php(Documentation)(免责声明:我是PHP SDK的维护者:)).

在非技术性说明中:我不会过多地使用Firebase Web控制台中的用户列表:使用Firebase CLI工具或其中一个官方(或非官方;)管理SDK来创建满足您需求的概述.

你在Bounty Annotation中提到过你在Firebase Slack社区中没有回答的问题 – 你可以在#php频道找到我和其他PHP开发人员.我为频道启用了通知,如果您有其他问题,请随时加入.

仅供参考,这是我用PHP SDK编写的代码,用于为上面的屏幕截图创建数据:

declare(strict_types=1);

use Kreait\Firebase;

use Kreait\Firebase\Util\JSON;

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

$serviceAccount = Firebase\ServiceAccount::fromJsonFile(__DIR__.'/service_account.json');

$firebase = (new Firebase\Factory())

->withServiceAccount($serviceAccount)

->create();

$auth = $firebase->getAuth();

// Remove all users

foreach ($auth->listUsers() as $user) {

$auth->deleteUser($user->uid);

}

// Simulate custom auth

$ct = $auth->createCustomToken('a-custom-auth');

$r = $auth->getApiClient()->exchangeCustomTokenForIdAndRefreshToken($ct);

echo JSON::prettyPrint($auth->getUser('a-custom-auth'));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'displayname-only',

'displayName' => 'Jérôme Gamez',

]));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'email-only',

'email' => 'jerome@example.org',

]));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'email-and-password',

'email' => 'jerome@example.com',

'password' => 'password'

]));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'phone-only',

'phoneNumber' => '+49-123-1234567',

]));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'email+name+phone',

'email' => 'jerome@example.net',

'displayName' => 'Jérôme Gamez',

'phoneNumber' => '+49-123-7654321',

]));

echo JSON::prettyPrint($auth->createUser([

'uid' => 'email+name+password+phone',

'email' => 'jerome@example.de',

'displayName' => 'Jérôme Gamez',

'password' => 'example123',

'phoneNumber' => '+49-321-7654321',

]));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值