В столбце «Поставщики» отображается значок, только если информация, прикрепленная к пользователю, соответствует одному или нескольким указанным поставщикам в разделе «Методы входа» (https://console.firebase.google.com/project/_/authentication/providers).
У пользовательских провайдеров нет четкого значка, и Firebase не будет знать, что отображать в столбце «Идентификатор» (UID уже находится в отдельном столбце в конце).
Однако вы do могут управлять отображением столбцов, создавая их заранее (т.е. перед первым входом в систему) или обновляя информацию о пользователе после создания записи пользователя.
Я подготовил пример, показывающий, какая комбинация полей приводит к отображению:
Обратите внимание:
- Отображаемое имя не оказывает никакого влияния: если это единственные предоставленные данные, пользователь считается анонимным.
- Адрес электронной почты + пароль соответствуют поставщику "Электронная почта / пароль"
- Номера телефонов всегда будут соответствовать"Телефон" провайдер
- Значки для соответствующего провайдера будут отображаться в столбце, даже если провайдер был отключен.
- Электронные письма и номера телефонов должны быть уникальными.Если ваше приложение позволяет нескольким пользователям с одним и тем же адресом электронной почты / номером телефона, у вас возникнут проблемы, если вы просто захотите увидеть больше информации о пользователях вашего проекта Firebase.
Вы можете создавать иобновите пользователей с помощью Firebase Auth REST API , но я бы предложил использовать для этого один из официальных SDK Firebase Admin SDK - на случай, если вы захотите придерживаться PHP, я знаю неофициальный: kreait / firebase-php ( Документация ) (Отказ от ответственности: я поддерживаю PHP SDK :)).
На нетехническом замечании: Iне будет слишком беспокоиться о списке пользователей в веб-консоли Firebase: используйте инструмент Firebase CLI или один из официальных (или неофициальных;)) Admin SDK, чтобы создать обзор, соответствующий вашим потребностям.
YouВ аннотации Bounty упоминается, что вы задали этот вопрос в сообществе Firebase Slack без ответа - вы можете найти меня и других разработчиков PHP в канале #php.Я включил уведомления для канала, поэтому присоединяйтесь к нам, если у вас есть дополнительные вопросы.
Обновление 2019-07-25 : в SDK теперь есть выделенное Discord Community на https://discord.gg/nbgVfty
К вашему сведению, это код, который я написал с помощью PHP SDK для создания данных для скриншота выше:
<?php
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',
]));