Я записываю некоторые данные в базу данных Firebase Realtime.
Класс пользователя
data class User(
@Exclude var userId: String? = "",
var username: String? = "",
var email: String? = ""
)
Функция записи
class MainActivity : AppCompatActivity() {
private lateinit var mDatabase: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mDatabase = FirebaseDatabase.getInstance().reference
bt_register_button.setOnClickListener {
val username = et_register_username.text.toString()
val email = et_register_email.text.toString()
writeNewUser("1", username, email)
}
}
private fun writeNewUser(userId: String, username: String, email: String?) {
val user = User(username, email)
mDatabase.child("users").child(userId).setValue(user)
}
}
Использование выше, я могу создать запись пользователя с предустановленным идентификатором 1:
users
1
email: "bill@gmail.com"
username: "bill"
Я, очевидно, хочу, чтобы идентификатор автоматически генерировался при создании.
Мне известно о пу sh (), но я не уверен, как это реализовать.
Редактировать 1
Спасибо, пользовательский ключ сейчас используется установить в качестве UID пользователя (из аутентификации):
private fun writeNewUser(name: String, email: String?) {
val user = User(name, email)
mDatabase.child("Users").child(mAuth.currentUser!!.uid).setValue(user)
}