Я написал код на котлинском языке
Мне нужна база данных Firebase в реальном времени, чтобы добавить ребенка с UID пользователя и электронной почтой, так как это значение в столбце users, когда пользователь регистрируется. Вход в систему успешен, и затем он переходит к основному действию. Информация о пользователях указана в разделе Аутентификация-> Пользователи, но база данных в реальном времени не работает, а также, когда я нажимаю кнопку «Назад», она снова и снова открывает основное действие после номера из кликов он возвращается на страницу входа и выходит, возможно, это потому, что он не может подключиться к базе данных.
Пожалуйста, помогите мне с необходимыми изменениями.
Вот код
ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ
private var mFirebaseAnalytics: FirebaseAnalytics?=null
class MainActivity : AppCompatActivity() {
var listofContacts = ArrayList<Contacts>()
var adapter: ContactsAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mFirebaseAnalytics= FirebaseAnalytics.getInstance(this)
listofContacts.add(Contacts("NAME", 123456789))
adapter = ContactsAdapter(this, listofContacts)
listview.adapter=adapter
}
inner class ContactsAdapter : BaseAdapter {
var contactslist = ArrayList<Contacts>()
var context: Context? = null
constructor(context: Context, contactslist: ArrayList<Contacts>) : super() {
this.contactslist = contactslist
this.context = context
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val contact = contactslist[position]
val inflater = context!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val myView = inflater.inflate(R.layout.contact_view, null)
myView.name.text = contact.name!!
myView.num.text = contact.num.toString()!!
myView.setOnClickListener {
val intent= Intent(context,ContactInfo::class.java!!)
intent.putExtra("name",contact.name!!)
intent.putExtra("num",contact.num!!)
context!!.startActivity(intent)
}
return myView
}
override fun getItem(position: Int): Any {
return contactslist[position]
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getCount(): Int {
return contactslist.size
}
}
}
ВХОД
private var mAuth:FirebaseAuth?=null
var database=FirebaseDatabase.getInstance()
var myRef=database.reference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
mAuth = FirebaseAuth.getInstance()
}
fun loginevent(view: View){
login(etun.text.toString(),pw.text.toString())
}
fun login(email:String,password:String){
mAuth!!.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this){task ->
if(task.isSuccessful){
Toast.makeText(applicationContext,"Login Successful", Toast.LENGTH_LONG).show()
LoadMain()
}
else
Toast.makeText(applicationContext,"Login Failed", Toast.LENGTH_LONG).show()
}
}
override fun onStart() {
super.onStart()
LoadMain()
}
fun LoadMain(){
var currentuser=mAuth!!.currentUser
if(currentuser!=null) {
myRef.child("Users").child(currentuser.uid).setValue(currentuser.email)
val intent = Intent(this, MainActivity::class.java)
intent.putExtra("email", currentuser.email)
intent.putExtra("uid", currentuser.uid)
startActivity(intent)
}
}
}