检查网址是否存在具有数据快照的Firebase数据库

时间:2017-08-02 02:06:50

标签: android firebase firebase-realtime-database firebase-storage

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

目前您忽略了我的查询,并且已经进入下一步删除图像。如何检查此URL以及是否没有任务?

图像数据库: 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(&#34; URL&#34;)。

发生以下错误:Firebase数据库路径无效:Firebase数据库路径不得包含&#39;。&#39;,&#39;#&#39;,&#39; $&#39;,&# 39; [&#39;,或&#39;]&#39;

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解你要做的事情,但这里有两个最有可能的答案。

  1. 检测该值是否与您正在寻找的dataSnapshot.getValue(String.class).equals("https://REST_OF_YOUR_URL")匹配

  2. 检测节点是否有任何值(如果存在):dataSnapshot.exists()

答案 1 :(得分: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 {