Firebase - 检查数据是否有孩子

时间:2018-01-02 16:36:41

标签: javascript firebase firebase-realtime-database

我有一个表格和一个类别页面,这些类别可以保存文档。我的类别索引页面显示了我的所有类别,可以选择删除我想要的类别。我只是希望如果类别没有任何文件就可以排除。

我的结构是:

enter image description here

我的代码中删除该类别的部分是:

$('.exclude i').click(function(){
                        if(categoriasRef.child($(this).parent().attr('keyCategoria')).child('documentos')){
                            if(confirm("Você realmente deseja apagar esse registro?")){
                                categoriasRef.child($(this).parent().attr('keyCategoria')).remove();
                            }
                        }
                    })

我尝试添加:

  

如果(categoriasRef.child($(本).parent()。ATTR( 'keyCategoria'))。子( 'documentos'))

,但即使该类别没有像您孩子这样的文档,这种情况总是正确的,因此条件总是会通过,您可以删除该类别。

我不知道如何区分文档和没有附加文档的类别,以便我可以进行处理,如果他们有文件无法删除。

整个代码以便更好地理解:

function initFirebase(){

        function carregaCategorias(){
            categoriasRef.on('value', function(data){
                headertb = isAdmin ? "<th>Categoria</th><th>Editar</th><th>Excluir</th>" : "<th>Categoria</th>";
                $('#tableCustom thead tr').html(headertb);

                $("#tableCustom").dataTable().fnDestroy();
                $('#tableCustom tbody').html('');

                for(var key in data.val()){
                    categoria = data.val()[key]
                    if(isAdmin){
                        linha = "<tr>"+
                                    "<td>"+categoria.titulo+"</td>"+
                                    "<td><a href='/categorias/"+key+"/edit/'><i class='fa fa-edit'></i></a></td>"+
                                    "<td class='exclude' keyCategoria='"+key+"'><i class='fa fa-trash-o'></i></td>"+
                                "</tr>";
                        $('#tableCustom').append(linha);
                    }else{
                        window.location = "/documentos?estado=not_admin";
                    }


                }

                closeLoader();

                //datatable        
                $('#tableCustom').dataTable({
                    "aaSorting": [[ 0, "asc" ]],
                    "oLanguage": {
                        "sUrl": "/datatable_pt.txt"
                    },
                    "aoColumnDefs": [
                        { "bSortable": true, "aTargets": [ 0 ] },
                        { "bSearchable": false, "aTargets": [ 0 ] }
                    ]
                });


                if(isAdmin){
                    $('.exclude i').click(function(){
                        if(categoriasRef.child($(this).parent().attr('keyCategoria')).child('documentos')){
                            if(confirm("Você realmente deseja apagar esse registro?")){
                                categoriasRef.child($(this).parent().attr('keyCategoria')).remove();
                            }
                        }
                    })
                }
            }); 
        }

        carregaCategorias();
    }

1 个答案:

答案 0 :(得分:1)

你试过使用存在吗?

Here the exists documentation