Kotlinを使ってFirebaseでログイン処理をしようと思っています。
下記のコードを試しましたが、常にログインが失敗します。
FireBase側の設定では、メール認証を有効にしています。
同様の問題の知見のある方、ご教示のほどよろしくお願い致します。
エラーメッセージ
2022-01-16 11:20:38.271 3895-3895/com.example.myapplication D/Create: com.google.firebase.FirebaseApiNotAvailableException: API: InternalFirebaseAuth.FIREBASE_AUTH_API is not available on this device.
Kotlin
package com.example.myapplication import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import android.widget.Button import android.widget.EditText import android.widget.Toast import com.google.firebase.FirebaseApp import com.google.firebase.auth.FirebaseAuth import com.google.firebase.database.DatabaseReference import com.google.firebase.database.FirebaseDatabase class MainActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) auth = FirebaseAuth.getInstance() val buttonSignUp = findViewById<Button>(R.id.SignUpButton) val buttonLogin = findViewById<Button>(R.id.LoginButton) buttonSignUp.setOnClickListener { val emailEditText = findViewById<EditText>(R.id.emailEditText) val emailText = emailEditText.text.toString() val passEditText = findViewById<EditText>(R.id.passEditText) val passText = passEditText.text.toString() auth.createUserWithEmailAndPassword(emailText, passText) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Toast.makeText( baseContext, "SignUp 成功", Toast.LENGTH_SHORT ).show() } else { Toast.makeText( baseContext, "SignUp 失敗", Toast.LENGTH_SHORT ).show() Log.d("Create",task.exception.toString()) } } } buttonLogin.setOnClickListener { val emailEditText = findViewById<EditText>(R.id.emailEditText) val emailText = emailEditText.text.toString() val passEditText = findViewById<EditText>(R.id.passEditText) val passText = passEditText.text.toString() auth.signInWithEmailAndPassword(emailText, passText) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Toast.makeText( baseContext, "Login 成功", Toast.LENGTH_SHORT ).show() } else { Toast.makeText( baseContext, "Login 失敗", Toast.LENGTH_SHORT ).show() Log.d("Login",task.exception.toString()) } } } } }
mctivity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:text="string/signup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/SignUpButton" android:layout_marginTop="13dp" app:layout_constraintTop_toBottomOf="@+id/guideline" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="30dp"/> <Button android:text="string/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/LoginButton" android:layout_marginTop="13dp" app:layout_constraintTop_toBottomOf="@+id/guideline" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="30dp"/> <TextView android:text="e_mail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/emailLabel" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="88dp" app:layout_constraintEnd_toStartOf="@+id/emailEditText" android:layout_marginEnd="14dp" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="40dp" android:labelFor="@+id/emailEditText"/> <TextView android:text="password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/passLabel" android:layout_marginTop="32dp" app:layout_constraintTop_toBottomOf="@+id/emailLabel" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="40dp" android:labelFor="@+id/passEditText"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/emailEditText" app:layout_constraintBottom_toBottomOf="@+id/emailLabel" app:layout_constraintTop_toTopOf="@+id/emailLabel" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="58dp" android:autofillHints=""/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPassword" android:ems="10" android:id="@+id/passEditText" app:layout_constraintTop_toTopOf="@+id/passLabel" app:layout_constraintBottom_toBottomOf="@+id/passLabel" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="58dp" android:autofillHints=""/> <androidx.constraintlayout.widget.Guideline android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/guideline" app:layout_constraintGuide_begin="204dp" android:orientation="horizontal"/> </androidx.constraintlayout.widget.ConstraintLayout>
plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdk 31 defaultConfig { applicationId "com.example.myapplication" minSdk 23 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.4.0' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.2' implementation 'com.android.support:support-v4:28.0.0' // この行を追加 implementation 'com.android.support:support-media-compat:28.0.0' // この行を追加 implementation 'com.google.firebase:firebase-auth:16.0.1' // この行を追加 implementation 'com.google.firebase:firebase-database:16.0.1' // この行を追加 testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } apply plugin: 'com.google.gms.google-services'
まだ回答がついていません
会員登録して回答してみよう