失败:DatabaseError:权限被拒绝Firebase正在创建用户,但数据库未更新

问题描述 投票:0回答:1

这是帐户创建活动:正在创建用户,但是除非我将规则更改为读写规则,否则不会更新数据库。

我只希望获得授权的用户数据库。请帮助

class CreateAccountActivity : AppCompatActivity() {

    var mAuth: FirebaseAuth? = null
    var mDatabase: DatabaseReference? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_create_account)

        mAuth = FirebaseAuth.getInstance();

        idbuttonsignup.setOnClickListener{
            var email = idemail.text.toString().trim()
            var password = idpassword.text.toString().trim()
            var displayName = iddisplayname.text.toString().trim()

            if(!TextUtils.isEmpty(email) || !TextUtils.isEmpty(password) || !TextUtils.isEmpty(displayName)){
                createAccount(email,password,displayName)
            }else{
                Toast.makeText(this,"Please fill out all the fields", Toast.LENGTH_LONG).show()
            }
        }


    }



    private fun createAccount(email: String, password: String, displayName: String){
        mAuth!!.createUserWithEmailAndPassword(email,password)
            .addOnCompleteListener{
                    task: Task<AuthResult> ->

                if(task.isSuccessful){
                    var currentUserID = mAuth!!.currentUser
                    var userID = currentUserID!!.uid
                    Toast.makeText(this,"Task is sucessfull", Toast.LENGTH_LONG).show()
                    mDatabase = FirebaseDatabase.getInstance().reference.child("Users").child(userID)
                    var userObject = HashMap<String, String>()
                    userObject.put("display_name",displayName)
                    userObject.put("status", "Hello there...")
                    userObject.put("image", "default")
                    userObject.put("thumb_image","default")

                    mDatabase!!.setValue(userObject).addOnCompleteListener{
                            task: Task<Void> ->
                        if(task.isSuccessful){
                            var dashboardIntentOkc = Intent(this, DashboardActivity::class.java)
                            dashboardIntentOkc.putExtra( "name", displayName)
                            startActivity(dashboardIntentOkc)
                            finish()
                            Toast.makeText(this,"User Created", Toast.LENGTH_LONG).show()
                        }else{
                            Toast.makeText(this,"User Not Created", Toast.LENGTH_LONG).show()
                        }
                    }


                }
            }
    }

}

请帮助

android firebase firebase-realtime-database
1个回答
0
投票

您是否已在Firebase数据库中定义用于读取和写入操作的规则。如果没有,请检查Firebase官方页面。

Get Started with Database Rules

© www.soinside.com 2019 - 2024. All rights reserved.