У меня проблема с передачей значений намерений следующему действию.
При создании профиля я создал две ссылки на базу данных 1. с pushid 2. без pu sh id
Теперь я пытаюсь передать значения из databaseref с помощью pushid
Мой код выглядит так
mDatabaseReference = mDatabase!!.reference.child("Tokens").child(userId).push()
для хранения значения ключа pu sh id, я использовал переменную, как показано ниже, один
var tokenID: String = mDatabaseReference!!.key!!
до pu sh это значение для намерения, я использовал
intent.putExtra(TOKENID,tokenID)
, когда я использовал журнал, я вижу значение pu sh id
TOKENID Я создал при начальной операции с сопутствующим объектом
Чтобы передать это значение pu sh id следующей активности
tokenreq = intent.getStringExtra(Profile.TOKENID)
для получения значений, которые я использовал ниже databasereference
mDatabaseReference = mDatabase!!.reference.child("Tokens").child(userId).child(tokenreq!!)
когда я запускаю программу, приложение cra sh упомянул KotlinNullPointerException для tokenreq в данных журнала
файл журнала
kotlin.KotlinNullPointerException
at com.luvpi.luvproject.activities.Verification$onCreate$2.onClick(Verification.kt:96)
at android.view.View.performClick(View.java:5612)
at android.view.View$PerformClick.run(View.java:22288)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
полный код для процесса
checkcode.setOnClickListener {
val userId = FirebaseAuth.getInstance().currentUser!!.uid
mDatabase = FirebaseDatabase.getInstance()
Log.d(TAG,"Push id is $tokenrequest")
mDatabaseReference = mDatabase!!.reference.child("Tokens").child(userId).child(tokenrequest!!)
mDatabaseReference!!.addListenerForSingleValueEvent(object :ValueEventListener{
override fun onCancelled(databaseError: DatabaseError) {
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
var tokenkey = dataSnapshot.child("tokenid").value.toString()
Log.d(TAG,"Verification Code is $tokenkey")
if (tokenkey == userverify.toString()) {
Toast.makeText(this@Verification, "Successfully Verified", Toast.LENGTH_LONG)
.show()
startActivity(Intent(this@Verification, LatestMessage::class.java))
} else {
Toast.makeText(this@Verification, "Verification code is incorrect", Toast.LENGTH_LONG).show()
return
}
}
})
}