android - 从 Firebase 获取数据并将数据用于 Android 应用的允许用户
问题描述
我是 Kotlin 的 Firebase Android 新手。我在我的 Android 应用程序中制作了一个注册表单并将其发送到 Firebase 实时数据库。将我的数据发送到 Firebase 后,我得到了这样的结果。我只需添加访问权限并将其填写到“允许”,所以注册后的用户不能直接登录我的应用程序...
这是我的登录屏幕代码..我想要的是当用户单击“登录”按钮时..如果允许,该代码将获取“访问”的数据,而不是用户可以登录..如果没有则有通知联系管理员..请帮助我...我已经尝试了很多次...提前谢谢
代码:`package com.example.myapplication
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.annotation.NonNull
import com.firebase.client.DataSnapshot
import com.firebase.client.Firebase
import com.firebase.client.FirebaseError
import com.firebase.client.ValueEventListener
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.FirebaseUser
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.activity_register_form.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
login.setOnClickListener {
val email = log_email.text.toString()
val password = log_password.text.toString()
Log.d("MainActivity", "Email is" + email)
Log.d("MainActivity", "Password:$password")
FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password)
.addOnCompleteListener {
if (it.isSuccessful) {
val intent = Intent(this, MainMenuActivity::class.java)
startActivity(intent) }
else { Toast.makeText(this, "Login Failed, please check your account and password", Toast.LENGTH_SHORT).show()}
}
}
register.setOnClickListener {
val intent = Intent(this, register_form::class.java)
startActivity(intent)
}
}
}
`
解决方案
设置数据库的 Firebase 规则规则:
{
"rules": {
".read": true,
".write": true
}
}
推荐阅读
- java - 如何配置 Jackson 将一个类型的所有字段转换为另一种类型?
- python - 熊猫:根据日期将另一行输入数据框中
- mysql - 用于查找最新条目的查询优化
- python - 鉴于 Python 中的逻辑运算符优先级告诉我它们应该这样做,为什么这 4 行代码不能正常工作?
- react-native - 在 TabNavigator 中重置当前 Stack 并导航到其他 Stack (react-navigation)
- java - 如何在 JUnit 测试期间消除“缺少 Hibernate 审计表”WARN 消息
- c - 为什么从 sockaddr_in 到 sockaddr 的转换有效
- javascript - javascript Promise 中的异步操作最终阻塞
- shell - 需要在TCL脚本中结合linux命令
- java - Java - 取消期货