我正在学习Kotlin,并试图在用户登录应用程序时将用户的电子邮件和UID保存在firebase数据库中,但数据没有存储在数据库中,logcat也没有显示错误,所以我找不到问题所在。
附注:我已将firebase数据库规则设置为
{
"rules": {
".read": true,
".write": true
}
}
下面是login.kt文件的代码
package com.revorg.tictactoe
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.FirebaseUser
import com.google.firebase.database.FirebaseDatabase
import kotlinx.android.synthetic.main.activity_login.*
class Login : AppCompatActivity() {
var mFirebaseAuth: FirebaseAuth?=null
var database = FirebaseDatabase.getInstance()
var myRef=database.reference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
mFirebaseAuth= FirebaseAuth.getInstance()
}
fun buLoginEvent(view:View){
LoginToFirebase(etEmail.text.toString(),etPassword.text.toString())
}
fun LoginToFirebase(email:String,password:String){
mFirebaseAuth!!.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this) {task ->
if(task.isSuccessful){
Toast.makeText(applicationContext,"Login Successful",Toast.LENGTH_SHORT).show()
var currentuser = mFirebaseAuth!!.currentUser
//save to Database
if(currentuser!=null) {
myRef.child("Users").child(splitString(currentuser.email.toString())).child(currentuser.uid)
}
LoadMain()
} else {
Toast.makeText(applicationContext,"Login Failed", Toast.LENGTH_SHORT).show()
}
}
}
override fun onStart() {
super.onStart()
LoadMain()
}
fun LoadMain(){
var currentuser = mFirebaseAuth!!.currentUser
if(currentuser!=null) {
var intent = Intent(this, MainActivity::class.java)
intent.putExtra("email", currentuser.email)
intent.putExtra("uid", currentuser.uid)
startActivity(intent)
}
}
fun splitString(str:String):String{
var split = str.split("@")
return split[0]
}
}
发布于 2018-08-13 06:12:14
没有存储任何内容,因为您没有存储任何内容,您需要使用setValue()
来存储数据。child()
获取对数据库中某个位置的引用。
您应该这样做:
myRef.child("Users").child(currentuser.uid).child("email").setValue(email);
然后,您将拥有这个数据库:
Users
userUid
email: email_here
https://stackoverflow.com/questions/51812733
复制相似问题