Я новичок здесь, и у меня есть вопрос о моем маленьком проекте.
Я установил ссылку на базу данных (mDatabase) для этого действия, указывающего на имя потомка, и прикрепил addValueEventListener () для прослушиванияснимок данных из консоли базы данных firebase для получения значения имени из базы данных, но когда я запускаю приложение, он выглядит следующим образом -
Спасибо всем вам,
регистрация активности
class RegisterScreenActivity : AppCompatActivity() {
val mAuth = FirebaseAuth.getInstance()
lateinit var mDatabase : DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.register_page)
val regBtn = findViewById<View>(R.id.regBtn)as Button
mDatabase = FirebaseDatabase.getInstance().getReference("Names")
regBtn.setOnClickListener { view -> register()
}
}
приватный прикол регистрации () {
val emailTxt = findViewById<View>(R.id.emailTxt) as EditText
val nameTxt = findViewById<View>(R.id.nameTxt) as EditText
val passwordTxt = findViewById<View>(R.id.passwordTxt) as EditText
var email = emailTxt.text.toString()
var name = nameTxt.text.toString()
var password = passwordTxt.text.toString()
if (!name.isEmpty() && !password.isEmpty() && !email.isEmpty()){
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this) { task ->
if (task.isSuccessful){
val user = mAuth.currentUser
val uid = user!!.uid
mDatabase.child(uid).child("Name").setValue(name)
Toast.makeText(this,"xxxxx",Toast.LENGTH_LONG).show()
startActivity(Intent(this, LoginPage::class.java))
}else{
Toast.makeText(this,"xxxx",Toast.LENGTH_LONG).show()
}
}
}else{
Toast.makeText(this,"xxxxx!",Toast.LENGTH_LONG).show()
}
}
я храню информацию о пользователе, и после этого происходит вход в систему
class LoginPage : AppCompatActivity() {
val mAuth = FirebaseAuth.getInstance()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.login_page)
val loginBtn = findViewById<View>(R.id.loginBtn) as Button
val regTxt = findViewById<View>(R.id.regTxt)as Button
loginBtn.setOnClickListener { view -> login()
}
regTxt.setOnClickListener { view -> register()
}
}
private fun login() {
val emailTxt = findViewById<View>(R.id.emailTxt) as EditText
val passwordTxt = findViewById<View>(R.id.passwordTxt) as EditText
var email = emailTxt.text.toString()
var password = passwordTxt.text.toString()
if (!email.isEmpty() && !password.isEmpty()) {
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
startActivity(Intent(this, Timeline::class.java))
Toast.makeText(this, "xxxxx", Toast.LENGTH_LONG).show()
startActivity(Intent(this,Timeline::class.java))
} else {
Toast.makeText(this, "xxxx",Toast.LENGTH_LONG).show()
}
}
} else {
Toast.makeText(this, "xxxxx", Toast.LENGTH_LONG).show()
}
}
private fun register (){
startActivity(Intent(this,RegisterScreenActivity::class.java))
}
}
и, если информация верна, следующий график активности
class Timeline : AppCompatActivity() {
lateinit var mDatabase: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.time_line)
val dspTxt = findViewById<View>(R.id.dispTxt) as TextView
mDatabase = FirebaseDatabase.getInstance().getReference("Names")
mDatabase.addValueEventListener(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onDataChange(snapshot: DataSnapshot) {
snapshot.child("Name").toString()
dspTxt.text ="Welcome " + snapshot.value.toString()
}
})
}
}