タイトルの通りfirebaseの機能を使ってユーザーの認証機能とユーザー情報の保存を行いたいのですが、以下のコードでは上手くいきませんでした。考えられる原因はあるでしょうか。お力を貸していただければ幸いです。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
・authenticationで新たにユーザーの登録をしたさいに自動的に付与されるUIDをfirebaseのdocument名(collection名は”user")として、その下にユーザーの情報を保存したいです。
発生している問題・エラーメッセージ
以下のコードでエミュレータを起動して実際にサインアップの動作を行うとFailureListener が作動してしまい、firebase に保存されません。
該当のソースコード
var user = auth.currentUser data.collection("users") .document(user?.uid.toString()) .set(userinfo) .addOnSuccessListener { Log.d(TAG, "DodumentSnapshot written!") } .addOnFailureListener { Log.w(TAG, "Document NOT Written!") }
試したこと
公式サイトやweb上の記事にあるコードを見て、同じように入力しています。
ここにより詳細な情報を記載してください。
以下、すべてのコードを記載します。
package com.example.logintestapp
import android.content.ContentValues.TAG
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.example.logintestapp.databinding.ActivitySignupBinding
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.firestore.FirebaseFirestore
class Signup : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var data: FirebaseFirestore
private lateinit var binding: ActivitySignupBinding
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //setContentView(R.layout.activity_signup) binding = ActivitySignupBinding.inflate(layoutInflater) val view = binding.root setContentView(view) auth = FirebaseAuth.getInstance() data = FirebaseFirestore.getInstance() binding.btregister.setOnClickListener { signupActivity() addFirestoreActivity() } binding.tx2.setOnClickListener { val intent = Intent(this, MainActivity::class.java) startActivity(intent) } } private fun signupActivity() { var emailtext: String = binding.etemail.text.toString() var passtext: String = binding.etpass.text.toString()
0 コメント