这就是问题所在:
x1c 0d1x的数据
以下是我在Firebase中设置的规则:
的
Firebase中的当前用户:
的
当我创建一个新用户时,它应该在Firebase Realtime DB中更新。但在这种情况下,这并没有帮助。我甚至将读、写规则改为true,但它没有帮助&一直显示null。
//下面的代码//
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sign_up)
supportActionBar?.hide()
mAuth = FirebaseAuth.getInstance()
edtName =findViewById(R.id.edt_name)
edtEmail =findViewById(R.id.edt_email)
edtPassword =findViewById(R.id.edt_password)
btnSignUp =findViewById(R.id.btn_signup)
btnSignUp.setOnClickListener{
val name = edtName.text.toString()
val email = edtEmail.text.toString()
val password = edtPassword.text.toString()
signUp(name, email,password)
}
}
private fun signUp(name:String, email: String,password: String){
//logic for signup
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
//going homE
addUserToDatabase(name, email, mAuth.currentUser?.uid!!)
val intent= Intent(this@SignUp, MainActivity::class.java)
startActivity(intent)
} else {
Toast.makeText(this@SignUp, "Some Error occurred", Toast.LENGTH_SHORT).show()
}
}
}
private fun addUserToDatabase(name:String, email:String, uid:String){
mDbRef=FirebaseDatabase.getInstance().getReference()
mDbRef.child("user").child(uid).setValue(User(name, email, uid))
}
}
字符串
//用户类编码//
package com.example.mychat
class User {
var name : String? = null
var email : String? = null
var uid : String? = null
constructor(){}
constructor(name:String?, email:String?, uid:String?){
this.name= name
this.email=email
this.uid=uid
}
}
型
2条答案
按热度按时间tf7tbtn21#
如果您既没有获得完成侦听器,也没有获得错误侦听器,那么您是否在第一次访问控制台中的数据库之前下载了
google-services.json
?在这种情况下,文件可能不包含SDK需要的数据库引用。要解决此问题,请从项目中下载新的google-service.json
并在应用中使用,或者在mDbRef=FirebaseDatabase.getInstance("URL here").getReference().
的代码中指定数据库URL@Frank货车Puffelen的解决方案有效。
mjqavswn2#
是的,你所需要做的就是,后藤firebase console ->真实的time database -> rules(从同一页面的顶部工具栏)并将规则更改为:
字符串
你已经准备好了,这对我很有效!