lib/firebase_admin/service_account.ex

defmodule FirebaseAdmin.ServiceAccount do
  defstruct [:project_id, :private_key, :client_email]

  def new(project_id, private_key, client_email) do
    %__MODULE__{project_id: project_id, private_key: private_key, client_email: client_email}
  end

  def from_file(file_path) do
    file_path
      |> File.read!()
      |> Jason.decode!(as: __MODULE__, keys: :atoms)
  end

  def credentials(service_account) do
    service_account
    |> Jason.encode!
    |> Jason.decode!
  end
end