Java 如何获取FirebaseUser数据

Java 如何获取FirebaseUser数据,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,尝试从Firebase读取数据,但出现以下错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.sozluk, PID: 5798 java.lang.RuntimeException: java.lang.InstantiationException: Can't instantiate abstract class com.google.firebase.auth.FirebaseUser 我的代码:

尝试从Firebase读取数据,但出现以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.example.sozluk, PID: 5798
   java.lang.RuntimeException: java.lang.InstantiationException: Can't instantiate abstract class com.google.firebase.auth.FirebaseUser
我的代码:

for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {

                   Word2 word= new Word2();
                   word.setMean(postSnapshot.child("mean").getValue(String.class)) ;
                   word.setName(postSnapshot.child("name").getValue(String.class));
                   word.setControlled(postSnapshot.child("controlled").getValue(Boolean.class));
                   word.setAdded_by(postSnapshot.child("added_by").getValue(FirebaseUser.class));
                   word.setKey(postSnapshot.child("key").getValue(String.class));
                   words.add(word);
               }

这一行代码导致了以下问题:

word.setAdded_by(postSnapshot.child("added_by").getValue(FirebaseUser.class));
Firebase SDK无法反序列化类型为
FirebaseUser
的对象,因为正如错误消息所述,它是一个抽象类。这意味着它可以使用反射创建,这是实时数据库SDK在这里必须做的


你在这里没有一个简单的解决办法。由于它是一个抽象类,我建议不要在任何类中直接使用FirebaseUser。您可能应该只存储用户的UID字符串。

我认为您试图在代码中的某个位置创建FirebaseUser实例,这导致了问题。