2017-08-02 102 views
0

我在数据库中有一个图像,它具有预定义的路径。我将使用Datasnapshot进行查询,并查看路径是否为我确定的路径,然后转到下一步,该步骤将负责保存新照片而不删除旧的默认图像并保留在Firebase存储中。如果它不是预期的URL,那么执行删除Firebase图像的过程。检查是否存在URL使用Datasnapshot的Firebase数据库

目前您正在忽略我的查询,并且已经进入下一步,即删除图像。我怎样才能检查这个URL,如果没有任何任务?

图像DATABSE: enter image description here

代码:

*fotoEmpresaDB = FirebaseDatabase.getInstance().getReference().child("Empresas").child(user_id).child("foto_capa");*/ 
      fotoEmpresaDB.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 


        if (dataSnapshot.equals("https://firebasestorage.googleapis.com/v0/b/name-database/Default%2Fprofiledefault.jpg?alt=media&token=ad1ce6b7-1195-40fa-a88a-affade7517b0")){ 

         /*Method that saves image without deleting the previous image*/ 
         salvarDadosImagem(); 




        } else { 

         mProgress.setMessage("Deleting image...."); 
         mProgress.show(); 
         mProgress.setCancelable(false); 

         String url = dataSnapshot.getValue(String.class); 
         mStorageUrl = FirebaseStorage.getInstance().getReferenceFromUrl(url); 
         mStorageUrl.delete().addOnSuccessListener(new OnSuccessListener<Void>() { 
          @Override 
          public void onSuccess(Void aVoid) { 

           salvarDadosImagem(); 




          } 

我曾尝试为:datasnapshot.hashChild( “URL”)。

发生此错误:无效的火力地堡数据库路径:火力地堡数据库路径不能包含‘#’,‘$’,‘[’或‘]’

回答

1

不能确定我明白你“”正在努力做,但这里有两个最可能的答案。

  1. 要检测值相匹配,你在找什么dataSnapshot.getValue(String.class).equals("https://REST_OF_YOUR_URL")

  2. 要检测该节点的任何值(所以:如果存在的话):dataSnapshot.exists()

+0

解决方案:String url = dataSnapshot.getValue(String.class);如果(url.contentEquals(“https:// URL”)){}。谢谢你的帮助 – TiagoIB

+0

啊,对不起......我错过了你的问题是针对Android的。语法在这里确实“稍微”不同。很好,你找到了它。 :-)如果我的回答很有用,请点击左侧的upvote按钮。 –

0

解决方案:

fotoEmpresaDB.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 


        String url = dataSnapshot.getValue(String.class); 

        if (url.contentEquals("https: URL") ){ 

         /*Method that saves image without deleting the previous image*/ 
         salvarDadosImagem(); 




} else { 
相关问题