Cette question semble intéressante. Je fais aussi des recherches. Je fournis des liens utiles.
https://jwt.io/ - vous pouvez trouver des bibliothèques tierces JWT pour Android ici. Parce que Firebase utilise l'authentification basée sur les JWT (Web Web Tokens).
https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library
Nous ne pouvons pas créer des jetons personnalisés dans Firebase Administrateur SDK. Mais nous pouvons créer des jetons personnalisés à partir du serveur Firebase Authenticating. L'explication est ici: h ttps://firebase.google.com/docs/auth/admin/create-custom-tokens
String uid = "some-uid";
HashMap<String, Object> additionalClaims = new HashMap<String, Object>();
additionalClaims.put("premiumAccount", true);
FirebaseAuth.getInstance().createCustomToken(uid, additionalClaims)
.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String customToken) {
// Send token back to client
/* Here, you get the custom token. You can simply store this token in String variable, and later pass as customToken */
}
});
Ce lien "https://github.com/jwtk/jjwt" fournit des API pour créer des jetons personnalisés JWT. Après avoir créé des jetons personnalisés, vous pouvez utiliser
FirebaseAuth.getInstance().signInWithCustomToken(mCustomToken)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCustomToken:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCustomToken:failure", task.getException());
Toast.makeText(CustomAuthActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
}
});
Note: Je ne l'ai pas mis en œuvre auparavant. Je suis une des personnes très intéressées à mettre en œuvre ceci. Je vais suivre votre réponse lorsque vous résolvez cela complètement.