Here is a simple example for querying data from Firestore to be displayed in a table. Ensure that you have Firestore properly installed and configured.
- Define a route that gets the documents (in this example, meal_events) from Firestore and renders a view:
 
require 'sinatra'
require 'firebase'
get '/meal_events' do
  base_uri = 'https://<your-firebase-app>.firebaseio.com/'
  firebase = Firebase::Client.new(base_uri)
  response = firebase.get('meal_events')
  @meal_events = response.body
  erb :meal_events
end
In this handler, we’re using the firebase gem to connect to Firestore, then we’re fetching the meal events and storing them in the instance variable @meal_events. This instance variable will be available in our view.
- Next, in your views/meal_events.erb file, you can iterate over @meal_events to generate your table rows:
 
<table>
     <thead>...</thead>
     <tbody>
          <% @meal_events.each do |meal_event| %>
               <tr>
                    <td><%= meal_event.fetch('name') %></td>
                    <td><%= meal_event.fetch('parent_meal_event') %></td>
                    <td><%= meal_event.fetch('min_foods') %></td>
                    <td><%= meal_event.fetch('max_foods') %></td>
               </tr>
          <% end %>
     </tbody>
</table>
This will create a new table row for each meal event, with the table data filled in from the meal event.
Remember to replace <your-firebase-app> with your actual Firebase app’s name!
    
Top comments (0)