diff --git a/lib/firebase_token_auth/admin_client.rb b/lib/firebase_token_auth/admin_client.rb index 879f5d8..740babd 100644 --- a/lib/firebase_token_auth/admin_client.rb +++ b/lib/firebase_token_auth/admin_client.rb @@ -20,6 +20,18 @@ def update_existing_account(uid, attributes) service.set_account_info(request) end + def create_account(email, password, attributes) + params = { email: email, password: password}.merge!(permit_attributes(attributes)) + request = Google::Apis::IdentitytoolkitV3::SignupNewUserRequest.new(**params) + service.signup_new_user(request) + end + + def delete_existing_account(uid) + update_params = { local_id: uid } + request = Google::Apis::IdentitytoolkitV3::DeleteAccountRequest.new(**update_params) + service.delete_account(request) + end + private def permit_attributes(attr_hash) diff --git a/lib/firebase_token_auth/client.rb b/lib/firebase_token_auth/client.rb index 4f9b330..b999349 100644 --- a/lib/firebase_token_auth/client.rb +++ b/lib/firebase_token_auth/client.rb @@ -55,6 +55,10 @@ def user_search_by_email(email) admin_client.get_account_info({ email: [email] })&.users&.map(&:to_h) end + def signup_user(email, password, attribute_hash = {}) + admin_client.create_account(email, password, attribute_hash).to_h + end + def user_search_by_uid(uid) admin_client.get_account_info({ local_id: [uid] })&.users&.map(&:to_h) end @@ -63,6 +67,10 @@ def update_user(uid, attribute_hash) admin_client.update_existing_account(uid, attribute_hash).to_h end + def delete_user(uid) + admin_client.delete_existing_account(uid).to_h + end + private def admin_client diff --git a/lib/firebase_token_auth/version.rb b/lib/firebase_token_auth/version.rb index 593ebcb..58cc52b 100644 --- a/lib/firebase_token_auth/version.rb +++ b/lib/firebase_token_auth/version.rb @@ -1,3 +1,3 @@ module FirebaseTokenAuth - VERSION = '1.3.0'.freeze + VERSION = '1.3.1'.freeze end