¿Se pueden actualizar los reclamos de usuario personalizados a través

¿Se pueden actualizar los reclamos de usuario personalizados a través de la API REST de Firebase?

Tengo que actualizar los reclamos de los usuarios y prefiero hacerlo con php. La actualización de "displayName" u otra información funciona bien, pero cuando intento enviar atributos personalizados en el cuerpo de la solicitud, aparece el error "INSUFFICIENT_PERMISSION". ¿Esta operación no es posible o es solo mi código?

El código PHP:

$ch = curl_init(
    'https://www.googleapis.com/identitytoolkit/v3/relyingparty'.
    '/setAccountInfo?key=[API_KEY]'
);
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json'
    ],
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => \json_encode([
        'idToken' => [FIREBASE_ID_TOKEN],
        'customAttributes' => \json_encode([
             'admin' => true
         ]),
    ]),
    CURLOPT_RETURNTRANSFER => true
]);
$res = curl_exec($ch);

Y el error completo devuelto en respuesta:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "INSUFFICIENT_PERMISSION"
   }
  ],
  "code": 400,
  "message": "INSUFFICIENT_PERMISSION"
 }
}

He probado reemplazar 'customAttributes' con 'customClaims' y no codificar los reclamos, sin éxito. Todo realizado bajo conexión https.

Mostrar la mejor respuesta

Para actualizar las notificaciones personalizadas de un usuario, las credenciales de usuario proporcionadas a través de un token de identificación no son suficientes; un usuario no puede establecer sus propias notificaciones personalizadas (que se consideran propiedades administrativas, no propiedades editables por el usuario).

Para poder configurar reclamos personalizados, debe autenticar las solicitudes con credenciales de cuenta de servicio. Esta y otras tareas administrativas las proporciona uno de los SDK de Firebase Admin (https://firebase.google.com /docs/admin).

Desafortunadamente, Google no proporciona un SDK de administrador oficial para PHP, pero afortunadamente, hay uno no oficial que puede encontrar en https://github.com/kreait/firebase-php (Descargo de responsabilidad: soy el autor :))