【问题标题】:How to get data from firebase as non Realtime database?如何从firebase获取数据作为非实时数据库?
【发布时间】:2018-08-14 18:24:54
【问题描述】:

是否有可能从 firebase 获取数据作为非实时数据库?例如我只想获取一次数据,并且不希望它在之后的任何更改上刷新。

我浏览了 firebase 文档并为我的 Kotlin 代码找到了这个。

        var database = FirebaseDatabase.getInstance().reference.child("profiles")
        database.child(authorId).addListenerForSingleValueEvent(object : ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
            }

            override fun onDataChange(p0: DataSnapshot) {

            val profile = p0.getValue(Profile::class.java)
            authorTextView.text = profile!!.username

}}

但它仍然会实时刷新,我只想加载一次。

已编辑: 实际上,此代码是适配器中 onBindViewHolder 方法的一部分,该适配器由 Firebase 使用 addValueEventListener() 填充。我认为由于这个听众,它一次又一次地触发,但我怎样才能避免这种情况呢?

【问题讨论】:

  • 那个监听器应该只触发一次。您实际上是多次添加它吗?每次添加一个新的都会触发。
  • 这就是这段代码实际上在做什么。您能否分享更多代码,也许您正在代码的另一部分添加一个新的侦听器,正如 Doug Stevenson 在他的评论中提到的那样,请回复@。
  • 是的,你是对的。这是被多次添加的。我更新了我的问题

标签: android firebase firebase-realtime-database


【解决方案1】:

[JAVA]在没有答案的情况下搜索后,我这样做了:

int wall = 1;
@onCreate...
reference.child(iden).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if (wall == 1) {
            wall = 2;
            `enter code here`

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2020-02-27
    相关资源
    最近更新 更多