JSFiddle - React, Tailwind, and code Playground

by borisjavier

HTML

<input type="hidden" id="recipient" value="YmprYXJ0cmFjZXIyQGdtYWlsLmNvbQ==">

<input type="hidden" id="chatPartners" value='["YmprYXJ0cmFjZXIyQGdtYWlsLmNvbQ==","Y2FsZWJkYXZpZGJhcnJlcmFAZ21haWwuY29t"]'>
<input type="hidden" id="uidPartners" value='["ZQEWNEbcvHcvANPmT4JC7xvsxzm2","MsgAORbGcNb9S9TnWB5VMH1ipzT2"]'>

JavaScript

function getRecipientUid() {
    // Obtener los valores de los campos ocultos
    const recipientBtoa = document.getElementById('recipient').value;
    const chatPartners = JSON.parse(document.getElementById('chatPartners').value);
    const uidPartners = JSON.parse(document.getElementById('uidPartners').value);
    

    // Decodificar el recipient actual
    const currentRecipient = atob(recipientBtoa);

    // Buscar coincidencia en los chatPartners
    let recipientUid = null;
    
    chatPartners.forEach((partnerBtoa, index) => {
        const partnerMail = atob(partnerBtoa);
        if (partnerMail === currentRecipient) {
            recipientUid = uidPartners[index];
        }
    });

    if (!recipientUid) {
        throw new Error('No se encontró el UID del recipient');
    }

    return recipientUid;
}

//const recipientUid = getRecipientUid();
const idAlgo = Date.now();
const recipientUid = getRecipientUid();
console.log(recipientUid);
console.log(idAlgo);

// Modificación en sendContractInfo
async function sendContractInfo() {
    try {
        await init();
        const recipientUid = getRecipientUid(); // Nueva función
        
        const contractData = {
            metadata: {
                recipient: recipientUid, // Aquí insertamos el UID obtenido
                createdBy: currentUser.uid,
                status: 'pending',
                createdAt: firebase.database.ServerValue.TIMESTAMP
            },
            // ... resto del objeto
        };

        // ... resto de la función
    } catch (error) {
        console.error("Error:", error);
    }
}