从Firebase数据库中删除一个值

时间:2018-09-02 14:52:57

标签: java firebase firebase-realtime-database firebase-admin

我正在尝试从Firebase数据库中删除节点,但是什么也没有发生。

这是我的代码:

FileInputStream serviceAccount = new FileInputStream(keyPath);

FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setDatabaseUrl(databaseUrl)
    .build();

FirebaseApp.initializeApp(options);

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(uid).child("name").removeValue()

这是输出:

  

SLF4J:无法加载类“ org.slf4j.impl.StaticLoggerBinder”。
  SLF4J:默认为无操作(NOP)记录器实现
  SLF4J:有关更多信息,请参见http://www.slf4j.org/codes.html#StaticLoggerBinder   细节。

     

09-02-2018 05:43:53 PM-[开始]-开始操作:声明-   serviceAccount =新的java.io.FileInputStream(keyPath)2018年9月2日   05:43:53 PM-[END]-结束操作:语句-serviceAccount = new   java.io.FileInputStream(keyPath)09-02-2018 05:43:53 PM-[开始]-   开始操作:语句-选项=新   com.google.firebase.FirebaseOptions $ Builder()。setCredentials(com.google.auth.oauth2.GoogleCredentials.fromStream(serviceAccount))。setDatabaseUrl(databaseUrl).build()   2018年9月2日05:43:53 PM-[END]-结束操作:语句-选项=   新   com.google.firebase.FirebaseOptions $ Builder()。setCredentials(com.google.auth.oauth2.GoogleCredentials.fromStream(serviceAccount))。setDatabaseUrl(databaseUrl).build()   09-02-2018 05:43:53 PM-[START]-开始操作:声明-   com.google.firebase.FirebaseApp.initializeApp(options)2018年9月2日
  下午05:43:53-[结束]-结束操作:声明-   com.google.firebase.FirebaseApp.initializeApp(options)2018年9月2日
  05:43:53 PM-[START]-开始操作:声明-ref =   com.google.firebase.database.FirebaseDatabase.getInstance()。getReference()
  2018年9月2日05:43:53 PM-[END]-结束操作:声明-ref =   com.google.firebase.database.FirebaseDatabase.getInstance()。getReference()
  09-02-2018 05:43:53 PM-[START]-开始操作:声明   ref.child(“ Users”)。child(uid).child(“ name”)。removeValue()2018年9月2日
  下午05:43:53-[结束]-结束操作:声明-   ref.child(“ Users”)。child(uid).child(“ name”)。removeValue()2018年9月2日
  05:43:53 PM-[通过]-测试用例/ V2 /常规/草稿09-02-2018
  05:43:53 PM-[END]-结束测试用例:测试用例/ V2 /常规/草稿

正如我所说,数据库上没有任何变化。
有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最终在github上找到了这个存储库:https://github.com/bane73/firebase4j
在自述文件中,有一个简单的示例,通过仅提供数据库url和要写入的数据将值写入Firebase数据库。
为了删除一个值,只需将值设置为null:

String url = 'https://project-name.firebaseio.com/users/user1/email'

//Initialize database
Firebase firebase = new Firebase(baseUrl);

//remove email of user1
Map<String, Object> dataMap = new LinkedHashMap<String, Object>();
dataMap.put("some str", null);
firebase.put(dataMap)