Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
¡Vea todos los artículos de los miembros en Firebase! Aplicación web Javascript

Tengo un sitio en el que quiero agregar artículos a través de Firebase y se me ocurrió el siguiente código que muestra el resumen de los artículos, pero son algunos artículos creados por el usuario y quiero modificarlo para mostrar todos los artículos creados por otros usuarios

 function allIndex(){ firebase.auth().onAuthStateChanged(function(user) { user ? firebase.database().ref(user.displayName).child("Posts").orderByChild("updatedAt").on("value", function(user) { var t = ""; user.forEach(function(user) { entry = user.val(), t = '<div class="article"><a href="my-posts.html?id=' + user.getKey() + '"><div class="panel-heading">' + excerpt(entry.title, 140) + '</div><div class="panel-body"><small>' + datetimeFormat(entry.updatedAt) + '</small></div></a><small class="' + entry.status + '">' + entry.status + "</small></div>" + t }), $("#entries.post").removeClass("loading").find(".loader").remove(), $("#entries.post .panel_content").append(t) }) : (alert("Please login first"), window.location.href = "sign-in.html") }) }

Esta es una lógica asociada que justifica la estructura.

 function create() { firebase.auth().onAuthStateChanged(function(n) { n ? (tinymce.init({ }), $("#new_entry").submit(function(e) { e.preventDefault(), (e = {}).title = $(this).find('[name="title"]').val(), e.description = $(this).find('[name="description"]').val(), e.labels = $(this).find('[name="labels"]').val(), e.content = tinymce.get("content").getContent(), e.createdAt = (new Date).getTime(), e.updatedAt = e.createdAt, e.views = 0, e.status = "Pending"; var t = firebase.database().ref(n.displayName), a = t.child("Posts"); return t.child("Points").transaction(function(e) { return (e || 0) + 10 }), a.push(e).then(function(e) { window.location.href = "my-posts.html?id=" + e.getKey() }).catch(function(e) { alert(e), console.error(e) }), !1 })) : (alert("Please login first"), window.location.href = "sign-in.html") }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que tienes una estructura como esta:

 $userName: { Posts: { "post1": { ... }, "post2": { ... }, ... } }

En este momento, está cargando las publicaciones de un usuario específico y agregándolas al HTML. Para cargar las publicaciones de todos los usuarios, deberá:

  1. Cargue los datos de un nivel superior en su base de datos.
  2. Luego recorra cada usuario en su devolución de llamada.
 firebase.database().ref().on("value", function(users) { var t = ""; users.forEach(function(user) { user.val().Posts.forEach(function(post) { ... handle post here }) }) })

Notará que ya no hacemos pedidos en updatedAt , ya que eso no es posible en su estructura de datos actual para todos los usuarios. Si desea mostrar todas las publicaciones de todos los usuarios por updatedAt , considere cambiar su estructura de datos a una lista plana de publicaciones, con el nombre de usuario como una propiedad en cada una:

 Posts: { "post1": { username: "...", ... }, "post2": { username: "...", ... }, ... }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda