java - 如何获取Firebase用户数据

标签 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

我的代码:

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 字符串。

关于java - 如何获取Firebase用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60421877/

相关文章:

java - 实时到 firestore 相当于 .push()

java - 如何在我的方法中添加 "or"?

java - 让套接字等待来自 JTextArea 的输入

android - 如何从内部存储中读取 .gif 文件?

android - SharedPreference 值未更新

java - Android 用相机的 SurfaceView 覆盖 GLSurfaceView

java - 从模板开始用JAVA生成ODT文档

java - 作为 Java 控件的 HTML 呈现引擎

swift - Firebase如何创建用户?

swift - Xcode 中的索引超出范围错误