簡體   English   中英

Android:Firebase 中的“無法解析符號‘addValueEventListener’”

[英]Android: “Cannot Resolve symbol 'addValueEventListener'” in Firebase

我嘗試導入各種 Firebase 包來阻止此錯誤的發生,但它仍然存在。 我正在嘗試做一些事情:

   firebase.addValueEventListener(new ValueEventListener() {

但我一直收到錯誤:

Cannot Resolve symbol 'addValueEventListener'

盡管我導入了 ValueEventListener 。 (注意 ValueEventListener 在 IDE 中顯示為未使用的導入可能很重要,即使我顯然是在嘗試使用它)

確保您在 OnStart(){} 等方法或您正在使用的類的構造函數中實例化和添加該方法。如果不是,它的行為將與您描述的方式相似。

這個問題的一個例子:

public class ReadFromFireBase(){

 private DatabaseReference mDatabase;

public ReadFromFireBase(){
}

ValueEventListener postListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // Get Post object and use the values to update the UI
        Post post = dataSnapshot.getValue(Post.class);
        // ...
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
        // ...
    }
};
mDataBase.addValueEventListener(postListener);




} 

這將不起作用並拋出類似於您所得到的錯誤,鑒於偵聽器的結構方式,這是一個容易犯的錯誤

正確的方法是這樣的:

public class ReadFromFireBase(){

 private DatabaseReference mDatabase;
 private ValueEventListener postListener;


   public ReadFromFireBase(){
   postListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // Get Post object and use the values to update the UI
        Post post = dataSnapshot.getValue(Post.class);
        // ...
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
        // ...
    }
};
mDataBase.addValueEventListener(postListener);
}






} 
package com.example.firebase;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;

導入這些包,你的錯誤將得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM