我是安卓新手。我創建登錄和注冊功能。但是當用戶在 FireBase FireStore 中注冊時(基于當前用戶 ID),我想存盤用戶的資料(在進入簽名螢屏之前)。我有用戶ID,但我不知道該怎么做。代碼附在下面。我很高興,如果有人可以提供幫助。
package com.example.firebase
import android.content.Intent
import android.os.Binder
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.example.firebase.databinding.ActivitySignUpBinding
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.firestore.DocumentReference
import com.google.firebase.firestore.FirebaseFirestore
class Sign_Up_Activity : AppCompatActivity() {
private lateinit var binding: ActivitySignUpBinding
private lateinit var firebaseAuth: FirebaseAuth
private lateinit var firebasefirestore: FirebaseFirestore
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySignUpBinding.inflate(layoutInflater)
setContentView(binding.root)
firebaseAuth = FirebaseAuth.getInstance()
firebasefirestore = FirebaseFirestore.getInstance()
binding.signUpButton.setOnClickListener {
val email = binding.emailEt.text.toString()
val password = binding.passET.text.toString()
val confirmPass = binding.confirmPassEt.text.toString()
if (email.isNotEmpty() && password.isNotEmpty() && confirmPass.isNotEmpty()) {
if (password.equals(confirmPass)) {
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener {
if (it.isSuccessful) {
val userid:String= firebaseAuth.currentUser!!.uid
firebasefirestore.collection("user").document(userid).get()
Log.d("User id",userid)
val intent = Intent(this, Sign_In_Activity::class.java)
startActivity(intent)
} else {
Toast.makeText(this, it.exception.toString(),
Toast.LENGTH_SHORT)
.show()
}
}
} else {
Toast.makeText(this, "Password is not matching",
Toast.LENGTH_SHORT).show()
}
} else {
Toast.makeText(this, "Empty Fields are not Allowed",
Toast.LENGTH_SHORT).show()
}
}
}
}
uj5u.com熱心網友回復:
當您使用以下代碼行時:
firebasefirestore.collection("user").document(userid).get()
您沒有將用戶設定為 Firestore,您只是在閱讀它。如果要將資料添加到資料庫中,則必須使用set(),如以下代碼行:
val db = Firebase.firestore
val user = mapOf("email" to firebaseAuth.currentUser!!.email)
val userRef = db.collection("user")
userRef.document(userid).set(user)
.addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully written!") }
.addOnFailureListener { e -> Log.w(TAG, "Error writing document", e) }
如果您對使用 Google 實施 Firebase 身份驗證感興趣,請查看以下文章:
- 如何在 Jetpack Compose 中使用 Google One Tap 對 Firebase 進行身份驗證?
如果您想偶然實作匿名身份驗證,請檢查:
- 如何使用 Jetpack Compose 在干凈的架構中處理 Firebase 身份驗證?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480444.html
標籤:安卓 科特林 谷歌云平台 谷歌云火库 firebase 身份验证
