Estoy tratando de hacer un sistema de amigos, pero en la invitación acepto, tengo que eliminar la invitación de un chico en su lista, pero no puedo hacerlo sin la clave.

¿Cómo obtengo la clave de instantánea por valor (en este caso, uid) en la base de datos?
Las consultas de Firebase Realtime Database funcionan en una sola ruta y luego ordenan/filtran en un valor en una ruta fija debajo de cada nodo secundario directo. En tu caso, si sabes si el usuario está activo o pendiente, puedes encontrar un valor específico con:
const ref = firebase.database().ref("friends"); const query = ref.child("active").orderByValue().equalTo("JrvFaTDGV6TnkZq6uGMNICxwGwo2") const results = query.get(); results.forEach((snapshot) => { console.log(`Found value ${snapshot.val()} under key ${snapshot.key}`) }) No hay forma de realizar la misma consulta en los nodos active y pending al mismo tiempo, por lo que deberá realizar una consulta separada para cada uno de ellos o cambiar su modelo de datos para tener una única lista plana de usuarios. En ese caso, probablemente almacenará el estado y el UID de cada usuario como una propiedad secundaria y usará orderByChild("uid") .
También tenga en cuenta que el uso de ID de inserción como claves parece un antipatrón aquí, ya que supongo que cada UID solo debe tener un estado. Un mejor modelo de datos para esto es:
friends: { "JrvFaTDGV6TnkZq6uGMNICxwGwo2": { status: "active" } }