You could look at using auth0.
// display the lock widget
lock.show({}, (err, profile, id_token) => {
var options = {
id_token : id_token,
api : 'firebase',
scope : 'openid name email displayName',
target: 'YOUR-AUTH0-CLIENT-ID'
};
// exchange the delegate token for a Firebase auth token
auth0.getDelegationToken(options, (err, result) => {
if (!err) {
this.get('session').open('firebase', {provider: 'custom', token: result.id_token})
.then((result) => {
// should be authed to firebase and have an active torii session
});
}
});
});
.