我正在尝试使用Firebase数据库创建Java桌面RMI数据管理系统。我的第一步是使用admin sdk确认firebase的连接性。我完全按照指南中的步骤进行,没有任何进展。该程序会执行,但是我的Firebase控制台中没有数据修改。
以下是我到目前为止的代码。
public class Main{
public static class User2 {
public String date_of_birth;
public String full_name;
public String nickname;
public User2(String dateOfBirth, String fullName) {
this.date_of_birth = dateOfBirth;
this.full_name = fullName;
}
public User2(String dateOfBirth, String fullName, String nickname) {
this.date_of_birth = dateOfBirth;
this.full_name = fullName;
this.nickname = nickname;
}
}
public static void main(String[] args) {
FileInputStream serviceAccount = null;
try {
serviceAccount = new FileInputStream("rathnapuralabs-firebase-adminsdk-okzic-f6313557b4.json");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
FirebaseOptions options = null;
try {
options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://rathnapuralabs.firebaseio.com")
.build();
} catch (IOException e) {
e.printStackTrace();
}
FirebaseApp.initializeApp(options);
DatabaseReference ref = FirebaseDatabase.getInstance()
.getReference();
DatabaseReference usersRef = ref.child("users2");
Map<String, User2> users = new HashMap<>();
users.put("alanisawesome", new User2("June 23, 1912", "Alan Turing"));
users.put("gracehop", new User2("December 9, 1906", "Grace Hopper"));
usersRef.setValueAsync(users);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Object document = dataSnapshot.getValue();
System.out.println(document);
}
@Override
public void onCancelled(DatabaseError error) {
}
});
}
这段代码给了我三三行错误。
SLF4J:无法加载类“ org.slf4j.impl.StaticLoggerBinder”。
SLF4J:默认为不操作(NOP)记录器实现
SLF4J:有关更多详细信息,请参见http://www.slf4j.org/codes.html#StaticLoggerBinder。
但是有些东西告诉我,即使出现这些错误,数据仍应保存到Firebase中。
以下是代码和json密钥的github链接。
https://github.com/bandarawaththa/Testing-Firebase-with-realtime-db.git
答案 0 :(得分:1)
以下代码对我有用:
try {
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials
.fromStream(new ClassPathResource("/firebase-authentication.json").getInputStream()))
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
} catch (IOException e) {
e.printStackTrace();
}
“ / firebase-authentication.json”位于资源文件夹中。