我在我的项目中集成了Firebase实时数据库。当活动打开时,我检查用户是否已经在数据库中检查,为此,我从oncreate()
调用checkisalreadycheckin(empDataRef)
方法。检查下面的代码。
class EmpProfileActivity : BaseActivity<EmpProfileActivityBinding, EmpViewModel>() {
private val timeSdf = SimpleDateFormat("hh:mm a", Locale.getDefault())
private val dateSdf = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
private lateinit var isCheckIn: String
private lateinit var checkInTime: String
private lateinit var checkOutTime: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mViewModel = EmpViewModel()
mBinding.empProfileViewModel = mViewModel
val empDataRef: DatabaseReference =
mDatabase!!.reference.child(FirebaseKey.NodeEmpCheckInOut)
.child(dateSdf.format(Date())).child(userSession!!.getUserId())
checkIsAlreadyCheckIn(empDataRef)
mBinding.txtCheckIn.setOnClickListener {
when (isCheckIn) {
"0" -> {
empDataRef.child(FirebaseKey.checkIn).setValue(timeSdf.format(Date()))
empDataRef.child(FirebaseKey.checkOut).setValue("")
empDataRef.child(FirebaseKey.todayDate).setValue(dateSdf.format(Date()))
empDataRef.child(FirebaseKey.isCheckIn).setValue("1")
}
else -> showAlert("Something went wrong, Please contact your admin")
}
}
}
private fun checkIsAlreadyCheckIn(empDataRef: DatabaseReference) {
empDataRef.addValueEventListener(object : ValueEventListener {
override fun onCancelled(databaseError: DatabaseError) {
Log.e("Error:", databaseError.message)
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
for(data:DataSnapshot in dataSnapshot.children){
//------------>aftet click that view error will come here
isCheckIn = dataSnapshot.child(FirebaseKey.isCheckIn).value as String
}
}
})
}
}
kotlin.TypeCastException: null cannot be cast to non-null type kotlin.String
at com.intro.ui.profile.EmpProfileActivity$checkIsAlreadyCheckIn$1.onDataChange(EmpProfileActivity.kt:124)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.1.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.1.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.1.0:55)
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:6165)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
问题:当数据插入firebase并在AddeventValueListener
中回调/触发器时,如何更新/接收数据?
tostring()
使用非常灵活--请尝试以下操作:-
isCheckIn = dataSnapshot.child(FirebaseKey.isCheckIn).value.toString()
P.S:-即使它的null
--也会导致--“null”
(作为字符串)。然后可以相应地添加支票。
这就是我的设想。我有一个POJO类,我们称之为Car,声明如下: 在那个类中,列表 图片应该包含到我实际上传图片的Firebase存储的链接。由于Firebase函数的异步根,我在这方面遇到了问题。在第一个时刻,pictures列表具有图像的本地路径,因为我不希望用户在完成向Firebase数据库添加记录所需的所有步骤之前上传任何内容。所以,我只保存图像的本地路径。但是,一旦数据保存到云中,我当然
我有这部分代码: 现在想返回插入或更新的数据作为响应,但是在谷歌上看到很多帖子后,所有尝试都失败了,我怎么能这样做?没有上次插入的id 但返回布尔值: 如何在雄辩的ORM laravel最后插入id 大多数主题想要返回,但我想要所有数据。
下载url来自一个单独的图像选择方法,顺便说一句。我的用户创建代码是这样的。
从昨天开始,我一直在尝试为我的Firebase数据库添加一个值,我已经尝试了几种方法,但我做不到。 当用户查看一张奖赏卡时,调用addCard,该卡应添加到当前用户1卡中,并且每次向其添加一张卡时,不会删除该值。 这是我的RewardedAd(正确的广告节目)代码: 这是addCard:
问题内容: 我正在使用()查找PostLikes表中的(PostId,UserId),如果找到该行,则用于生成delete指令并删除基础行,如果未找到该行,则用于生成insert命令并使用将该行插入表中。但是该行未插入数据库中的表中。这是我到目前为止所做的 和表 PostLikes(LikeId,PostId,UserId) 问题答案: 有几个问题: 您正在寻找重复使用相同的命令,这两个检测行是否
我正在尝试使用Firebase存储和同步几个CSV文件。这些CSV文件的副本存储在内部存储器中。 为了在本地更新它们,我在Firebase存储桶中循环所有项目,比较两者之间的更新时间,然后如果有新版本,下载它。 除了从Firebase中提取元数据外,所有的东西似乎都运行得很好。Firebase文件的最新更新时间总是返回零?我觉得这很奇怪,因为它可以很好地下载文件,这意味着不应该有一个Firebas