Como mostrar un dato de un documento en Firebase en un ListView, usando Dart?

La idea es mostrar solo un documento de una coleccion de Firebase, mostrarlo en un ListView

A continuacion el codigo

                        children: snapshot.data.documents.map((data) {
                   
                          return StreamBuilder<QuerySnapshot>(
                              stream: Firestore.instance
                                  .collection('usuarios')
                                  .document('13721')  ///Aqui donde se intenta especificar el valor del documento
                                  .collection('ListaChat')
 .snapshots(),
                   
}

}
)

Python para criar uma planilha usando dados de excel e txt

preciso desenvolver um programa em python que leia um texto contendo uma lista de pedidos nessa lista tera nome do cliente nome do produto e quantidade solicitada, e gerar uma planilha com a lista de todos os pedidos tabulados de acordo com a tabela de produtos que estará em uma planilha de Excel contendo o nome do produto e preço por unidade…….Não encontrei nada sobre esse tipo de aplicação…. caso tenha alguma outra ideia usando bancos de dados estou aberto a opções…

sql – ¿Existe alguna forma de que actualizar el valor de una tabla usando de referencia otra automaticamente?

Tengo que crear las tablas necesarias para el manejo de una pagina de streaming tipo Netflix. La pagina cuenta con una tabla “principal” llamada plataforma que sirve para guardar distintos servidores y las relaciones necesarias entre las plataformas y los contenidos.

A la hora de crear los contenidos, estos contenidos están separados en Series y películas, cada uno con su tabla correspondiente.

Tabla Plataforma:

 CREATE TABLE Plataforma(
    DirecServidor NUMBER PRIMARY KEY,
    Nombre VARCHAR(30) NOT NULL,
    NumeroSubs INT,
    NumeroContenidos INT,
    Precio NUMBER(8,2) NOT NULL,
    CHECK (Precio>=0)
);

Tabla Serie y tabla Película:

CREATE TABLE Serie(
    IDContenido NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    Titulo VARCHAR(15) NOT NULL,
    Descripcion VARCHAR(90) NOT NULL,
    NTemporadas NUMBER,
    DirecServidor NUMBER NOT NULL,
    FOREIGN KEY (DirecServidor) REFERENCES Plataforma(DirecServidor)
);
CREATE TABLE Pelicula(
    IDContenido NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    Titulo VARCHAR(15) NOT NULL,
    Descripcion VARCHAR(90) NOT NULL,
    Director VARCHAR(30),
    Guionista VARCHAR(30),
    Duracion NUMBER(3,2),
    DirecServidor NUMBER NOT NULL,
    FOREIGN KEY (DirecServidor) REFERENCES Plataforma(DirecServidor)
); 

El identificador de las películas y de las series se genera automáticamente si no se proporciona uno (a base de contador)

Me gustaría que la columna de numeroContenidos en la tabla plataforma cuente el numero de contenidos, tanto películas como series y que los identificadores de los contenidos vayan de acuerdo con ese numero (si hay 2 películas y una serie, al introducir una serie nueva el Id sería 4 y no 2).

Podría hacerlo si cuando llamo a la función de insert tambien hago un Update a plataforma pero no es lo que busco.
¿Hay alguna forma de que el NumeroContenidos de la Plataforma se actualice automáticamente al insertar una serie o una película?

De la misma forma ¿hay alguna forma de hacer que la Identity se genere en base a ese numero de contenidos?

python – Usando a função getColletion no PyMongo

alguma consegue me ajudar com o seguinte problema?

Dentro do mongoDB, a colletion foi criada com espaço, exemplo: “mkt pipe”. O mongoDB permiti fazer esse tipo de coisa.

Criei a seguinte rota para realizar a consulta diretamente no banco de dados:

@metricas.route('/counter_source', methods=('POST'))

    def counter_source():
        payload = json.loads(request.data, object_hook=datetime_parser)
        query = payload.get("query")
        count = app.db.getCollection("mkt pipe").find(query).count()
    
        return str(count)

por conta do getCollection o pymongo me retorna o seguinte erro:

TypeError: 'Collection' object is not callable. If you meant to call the 'getCollection' method on a 'Database' object it is failing because no such method exists.

Se não fosse o bendito espaço, bastava fazer assim que funcionava:

count = app.db.mktpipe.find(query).count()

Alguém já teve esse problema que possa me ajudar?

Abraço

html – Não consigo validar cadastro com ReCaptcha usando PHP

Estou tentando fazer uma validaçao de recaptcha em que o usuario so consegue cadastrar depois que responde corretamento o captcha. mas não estou conseguindo

codigo Front end

<?php
session_start();
?>
<!DOCTYPE html>
<html lang="pt">

<head>
    <!-- Required meta tags-->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="cadastro_astral_mistico">
    <meta name="author" content="ThalisDEV">
    <meta name="keywords" content="ThalisDEV">
    <!--Captcha-->
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    <!-- Title Page-->
    <title>Cadastro Astral Mistico</title>

    <!-- Icons font CSS-->
    <link href="vendor/mdi-font/css/material-design-iconic-font.min.css" rel="stylesheet" media="all">
    <link href="vendor/font-awesome-4.7/css/font-awesome.min.css" rel="stylesheet" media="all">
    <!-- CSS only -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
    <!-- Font special for pages-->
    <link href="https://fonts.googleapis.com/css?family=Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
    <!-- Vendor CSS-->
    <link href="vendor/select2/select2.min.css" rel="stylesheet" media="all">
    <link href="vendor/datepicker/daterangepicker.css" rel="stylesheet" media="all">
    <!-- Main CSS-->
    <link href="css/main.css" rel="stylesheet" media="all">
    <!-- Adicionando JQuery -->
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"
    integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
    crossorigin="anonymous">
    </script>

    <!-- script para busca de CEP-->
    <script>

        $(document).ready(function() {

            function limpa_formulário_cep() {
                // Limpa valores do formulário de cep.
                $("#logradouro").val("");
                $("#bairro").val("");
                $("#localidade").val("");
                $("#uf").val("");
                $("#complemento").val("");
            }
            
            //Quando o campo cep perde o foco.
            $("#cep").blur(function() {

                //Nova variável "cep" somente com dígitos.
                var cep = $(this).val().replace(/D/g, '');

                //Verifica se campo cep possui valor informado.
                if (cep != "") {

                    //Expressão regular para validar o CEP.
                    var validacep = /^(0-9){8}$/;

                    //Valida o formato do CEP.
                    if(validacep.test(cep)) {

                        //Preenche os campos com "..." enquanto consulta webservice.
                        $("#logradouro").val("...");
                        $("#bairro").val("...");
                        $("#localidade").val("...");
                        $("#uf").val("...");
                        $("#complemento").val("...");


                        //Consulta o webservice viacep.com.br/
                        $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) {

                            if (!("erro" in dados)) {
                                //Atualiza os campos com os valores da consulta.
                                $("#logradouro").val(dados.logradouro);
                                $("#bairro").val(dados.bairro);
                                $("#localidade").val(dados.localidade);
                                $("#uf").val(dados.uf);
                                $("#complemento").val(dados.complemento);
                            } //end if.
                            else {
                                //CEP pesquisado não foi encontrado.
                                limpa_formulário_cep();
                                alert("CEP não encontrado.");
                            }
                        });
                    } //end if.
                    else {
                        //cep é inválido.
                        limpa_formulário_cep();
                        alert("Formato de CEP inválido.");
                    }
                } //end if.
                else {
                    //cep sem valor, limpa formulário.
                    limpa_formulário_cep();
                }
            });
        });

    </script>
<!--script para formatação automatica de data-->
<script>
    function mascaraData( campo, e ){
    var kC = (document.all) ? event.keyCode : e.keyCode;
    var data = campo.value;
    
    if( kC!=8 && kC!=46 )
    {
        if( data.length==2 )
        {
            campo.value = data += '/';
        }
        else if( data.length==5 )
        {
            campo.value = data += '/';
        }
        else
            campo.value = data;
    }
}
</script>

</head>

<body>
    <div class="page-wrapper p-t-180 p-b-100 font-poppins">
        <div class="wrapper wrapper--w780">
            <div class="card card-3">
                <div class="card-heading"></div>
                <div class="card-body">
                <p style="color: red; text-align:center;">
                    <?php
                        if(isset($_SESSION('CadastroLog'))){
                            echo $_SESSION('CadastroLog');
                            unset($_SESSION('CadastroLog'));
                        }
                    ?>
                    </p>
                    <h2 class="title">Formulario de Cadastro</h2>
                    <form action="" method="post">
                        <div class="input-group">
                            <input class="input--style-3" type="text" placeholder="Nome Completo" name="nome"required>
                        </div>
                        <div class="input-group">
                            <input class="input--style-3 js-datepicker" type="datetime" placeholder="Data de Nascimento" name="data_nascimento" onkeypress="mascaraData( this, event )" required>
                            <i class="zmdi zmdi-calendar-note input-icon js-btn-calendar "></i>
                        </div>
                        <div class="input-group ">
                            <div class="rs-select2 js-select-simple select--no-search ">
                                <label for="genero" style="color: white;">Escolha seu Genero!</label>
                                <select name="genero" required>
                                    <option>--------------------</option>
                                    <option>Nao Binario</option>
                                    <option>Masculino</option>
                                    <option>Feminino</option>
                                    <option>Homossexual</option>
                                    <option>Transsexual</option>
                                </select>
                                <div class="select-dropdown" name="genero"></div>
                            </div>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 " type="email " placeholder="Email" name="email" required>
                        </div>
                        <div class="input-group ">
                        <input style="color: white; " class="input--style-3 " type="number" name="cpf" pattern="d{3}.?d{3}.?d{3}-?d{2}" placeholder="Digite seu CPF "required>
                        </div>
                        <div class="input-group ">
                        <input style="color: white; " class="input--style-3 " type="number" name="celular" pattern="(1-9){2}(9)(1-9)d{7}" placeholder="Digite seu celular "required>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 "type="text" placeholder="cep " id="cep" name="cep" required/>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 "type="text" placeholder="Rua " name="logradouro" id="logradouro" required/>
                       </div>
                        <div class="input-group ">
                        <input class="input--style-3 " type="text" placeholder="número" name="numero" required/>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 " type="complemento" placeholder="complemento" name="complemento" id="complemento" required/>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 "type="text" placeholder="bairro " id="bairro" name="bairro" required/>
                        </div>
                        <div class="input-group" style="color: white;">
                        <div class="form-check">
                        <input class="form-check-input" type="radio" name="tipo_conta" value="0" required>
                        <label class="form-check-label" for="exampleRadios1">
                        Sou Consulente
                        </label>
                        </div>
                        <div class="form-check">
                        <input class="form-check-input" type="radio" name="tipo_conta" value="1">
                        <label class="form-check-label" for="exampleRadios2">
                        Forneço serviços holisticos
                        </label>
                        </div>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 " id="localidade" type="text" placeholder="Cidade " name="localidade" required/>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 " type="text " placeholder="Usuario " name="usuario" required>
                        </div>
                        <div class="input-group ">
                        <input class="input--style-3 " type="password" placeholder="Senha " name="senha" required>
                        </div>
                        <div class="input-group ">
                        <div class="rs-select2 js-select-simple select--no-search ">
                        <label for="uf" style="color: white;">Estados</label>
                        <select name="uf" id="uf" required>
                        <option>--------------------</option>
                        <option value="AC">Acre</option>
                        <option value="AL">Alagoas</option>
                        <option value="AP">Amapá</option>
                        <option value="AM">Amazonas</option>
                        <option value="BA">Bahia</option>
                        <option value="CE">Ceará</option>
                        <option value="DF">Distrito Federal</option>
                        <option value="ES">Espírito Santo</option>
                        <option value="GO">Goiás</option>
                        <option value="MA">Maranhão</option>
                        <option value="MT">Mato Grosso</option>
                        <option value="MS">Mato Grosso do Sul</option>
                        <option value="MG">Minas Gerais</option>
                        <option value="PA">Pará</option>
                        <option value="PB">Paraíba</option>
                        <option value="PR">Paraná</option>
                        <option value="PE">Pernambuco</option>
                        <option value="PI">Piauí</option>
                        <option value="RJ">Rio de Janeiro</option>
                        <option value="RN">Rio Grande do Norte</option>
                        <option value="RS">Rio Grande do Sul</option>
                        <option value="RO">Rondônia</option>
                        <option value="RR">Roraima</option>
                        <option value="SC">Santa Catarina</option>
                        <option value="SP">São Paulo</option>
                        <option value="SE">Sergipe</option>
                        <option value="TO">Tocantins</option>
                        </select>
                        <div class="select-dropdown "></div>
                        </div>
                        </div>
                        </div>
                    <div style="text-align: center; ">
                    <button class="btn btn--pill btn--green " type="submit " name="submit">Cadastrar</button>
                    </div>
                    <br>
                    <div class="g-recaptcha" data-sitekey="6Lf2YjEaAAAAAOq1D-LaAKWX5GL8TFe5tN1s5pq4"></div>
                    </form>
                </div>
            </div>
        </div>

    <!-- Jquery JS-->
    <script src="vendor/jquery/jquery.min.js "></script>
    <!-- Vendor JS-->
    <script src="vendor/select2/select2.min.js "></script>
    <script src="vendor/datepicker/moment.min.js "></script>
    <script src="vendor/datepicker/daterangepicker.js "></script>

    <!-- Main JS-->
    <script src="js/global.js "></script>
    <!-- JavaScript Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>

</body>

</html>

codigo do back end

<?php
session_start();
//DADOS DE CONEXÃO.
include("conexao.php");
//validação do captcha
$captcha = $_POST('g-recaptcha-response');

if($captcha != ''){
    $secreto = '6Lf2YjEaAAAAAK2MIzqb_lVjMDSCqguYruWvXmcZ';
    $ip = $_SERVER('REMOTE_ADDR');
    $var = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secreto&response=$captcha&remoteip=$ip");
    $resposta = json_decode($var, true);

    if($resposta('success')){

        //opções criptografia de senha.
        $options('salt') = '';
        $options('cost') = 11;

        //RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO !
        $nome = mysqli_real_escape_string($conexao,$_POST('nome'));
        $data_nascimento = mysqli_real_escape_string($conexao,$_POST('data_nascimento'));
        $genero = mysqli_real_escape_string($conexao,$_POST('genero'));
        $email = mysqli_real_escape_string($conexao,$_POST('email'));
        $tipo_conta = mysqli_real_escape_string($conexao,$_POST('tipo_conta'));
        $cpf = mysqli_real_escape_string($conexao,$_POST('cpf'));
        $celular = mysqli_real_escape_string($conexao,$_POST('celular'));
        $usuario = mysqli_real_escape_string($conexao,$_POST('usuario'));
        $senha = mysqli_real_escape_string($conexao,$_POST('senha'));
        $senha = password_hash($senha, PASSWORD_BCRYPT, $options);
        $cep = mysqli_real_escape_string($conexao,$_POST('cep'));
        $logradouro = mysqli_real_escape_string($conexao,$_POST('logradouro'));
        $numero = mysqli_real_escape_string($conexao,$_POST('numero'));
        $complemento = mysqli_real_escape_string($conexao,$_POST('complemento'));
        $bairro = mysqli_real_escape_string($conexao,$_POST('bairro'));
        $uf = mysqli_real_escape_string($conexao,$_POST('uf'));
        $localidade = mysqli_real_escape_string($conexao,$_POST('email'));

        //Verificando dados duplicados.
        $sql_busca_usuario = $conexao->query("SELECT usuario FROM usuarios WHERE usuario = '$usuario'");
        $sql_busca_email = $conexao->query("SELECT email FROM usuarios WHERE email = '$email'");

        //comparação de dados duplicados
        if(mysqli_num_rows($sql_busca_usuario) > 0){
            $_SESSION('CadastroLog') = "Esse Usuario já Existe!";
            header("Location: cadastro.php");
            exit();
        }elseif(mysqli_num_rows($sql_busca_email) > 0){
            $_SESSION('CadastroLog') = "Esse E-mail já esta cadastrado!";
            header("Location: cadastro.php");
            exit();
        }else{
            $sql = "INSERT INTO usuarios (nome, data_nascimento, genero, email, tipo_conta, cpf, celular, usuario, senha, cep, logradouro, numero, complemento, bairro, uf, localidade) VALUES ";
            $sql .= "('$nome', '$data_nascimento', '$genero', '$email', '$tipo_conta', '$cpf', '$celular', '$usuario', '$senha', '$cep', '$logradouro', '$numero', '$complemento', '$bairro', '$uf', '$localidade')"; 

            if($conexao->query($sql) === TRUE){
                echo"conexão bem sucedida"; 
            }else{
                echo"Erro: " .$sql . "<br>" . $conexao ->error;
            }
        }
    }
}
?>

OBS: eu coloquei os codigos em snippet porque estava saindo de formatação toda hora.
eu estou tentando nessa logica. mas se alguem souber alguma outra forma de validar o captcha estou aberto a sugestões.

javascript – Encontrar dispositivos bluetooth low energy usando apache cordova no visual studio 2017

Quando toco no botão para começar a rastrear os dispositivos BLE não acontece nada.
Aqui está o código do index.js:

var startScanSuccess, startScanError, scanParams;
    startScanSuccess = {
        "status": "scanStarted"
    }
    scanParams = {
        "services": (
            "180D",
            "180F"
        ),
        "allowDuplicates": true,
        "scanMode": bluetoothle.SCAN_MODE_LOW_LATENCY,
        "matchMode": bluetoothle.MATCH_MODE_AGGRESSIVE,
        "matchNum": bluetoothle.MATCH_NUM_MAX_ADVERTISEMENT,
        "callbackType": bluetoothle.CALLBACK_TYPE_ALL_MATCHES
    }
    function scanBLEdevices() {
        bluetoothle.startScan(startScanSuccess, startScanError, scanParams);
    }
    document.getElementById("btn2").addEventListener('touchstart', scanBLEdevices);

Python Como clickar em divs usando selenium

Estou tentando pegar empregos no google empregos e extrair dados para guadar em banco de dados ou em json.

Sites: GOOGLE EMPREGOS TELA
Notem como tenho no lado esquerdo uma lista com varios empregos e quando clico em algum ele exibe na tela ao lado informações mais detalhas, como faço pra cada emprego na lista da esquerda ser clickado e depois extrair o texto do titulo do emprego, como ali na imagem onde está escrito Estágio TI no lado de exibição

Meu codigo:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url1 = 'https://www.google.com/search?client=firefox-b-d&ei=Ja39X_nUIKif5OUPp6eUkAE&q=vagas+estagio+ti&oq=vagas+estagio+ti&gs_lcp=CgZwc3ktYWIQAzIICAAQsQMQgwEyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BAgAEEc6CggAELEDEIMBEEM6BAgAEEM6DggAELEDEIMBEMcBEK8BOgsIABCxAxDHARCjAjoFCAAQsQM6BQguELEDOggIABDHARCvAVDeMFipTmClUGgCcAN4AIABnQKIAbUckgEGMC4xLjE1mAEAoAEBqgEHZ3dzLXdpesgBCMABAQ&sclient=psy-ab&uact=5&ibp=htl;jobs&sa=X&ved=2ahUKEwjZlb7fyJbuAhXWGbkGHdiZAEUQutcGKAB6BAgDEAQ#htivrt=jobs&fpstate=tldetail&htilrad=-1.0&htidocid=jN52cIGLUm9ZT0BQAAAAAA%3D%3D'

# Definindo Drive
driver = webdriver.Chrome(executable_path=r'./chromedriver')
driver.get(url1) # Entrando no url1

# Click

time.sleep(10)
driver.quit() # Fechando o driver

Como posso fazer?

Estoy tratando de correr un sistema usando nodejs y mongodb pero estoy teniendo problemas con el token de autentificacion

¡Gracias por contribuir en StackOverflow en español con una respuesta!

  • Por favor, asegúrate de responder a la pregunta. ¡Proporciona información y comparte tu investigación!

Pero evita

  • Pedir ayuda o aclaraciones, o responder a otras respuestas.
  • Hacer declaraciones basadas en opiniones; asegúrate de respaldarlas con referencias o con tu propia experiencia personal.

Para obtener más información, consulta nuestros consejos sobre cómo escribir grandes respuestas.

Como desenhar triângulos usando python?

Obrigado por contribuir com o Stack Overflow em Português!

  • Certifique-se de responder à pergunta. Entre em detalhes sobre a sua solução e compartilhe o que você descobriu.

Mas evite

  • Pedir esclarecimentos ou detalhes sobre outras respostas.
  • Fazer afirmações baseadas apenas na sua opinião; aponte referências ou experiências anteriores.

Para aprender mais, veja nossas dicas sobre como escrever boas respostas.