1.1.1 • Published 4 years ago

use-firebase-events v1.1.1

Weekly downloads
2
License
MIT
Repository
-
Last release
4 years ago

useFirebaseEvents

Designed to help you get up and running with an event like system connected through the marvellous Firebase

Install

npm i use-firebase-events

Usage

First, wrap your app with the <EventsProvider/>

index.tsx

import React from "react";
import ReactDOM from "react-dom";
import { EventsProvider } from "use-firebase-events";
import App from "./App";

const firebaseConfig = {
  ...config from firebase
};

ReactDOM.render(
  <EventsProvider config={firebaseConfig}>
    <App />
  </EventsProvider>,
  document.getElementById("root")
);

App.tsx

import React, { useCallback, useEffect } from "react";
import { useSingleEvent } from "use-firebase-events";

const EVENTS = {
  TEST: "TEST"
};

function App() {
  const onEvent = useCallback(event => {
    console.log("event", event);
  }, []);

  const { unlisten, fire } = useSingleEvent({
    name: EVENTS.TEST,
    onEvent
  });

  useEffect(() => {
    return () => unlisten();
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);

  return (
    <div className="App">
      <button onClick={() => fire({ foo: "bar" })}>Fire event</button>
    </div>
  );
}

export default App;

API

<EventsProvider/>

Required props are marked with *.

NameTypeDefaultDescription
config*objectThe firebase config object for your database
eventsRefNamestringeventsThe ref name to be used in your database
startFromLastbooleantrueWhether to not fire events for previously stored events
fireRetriesnumber3How many times to fire event before failing

useFirebaseEvents()

Options (required *)

NameTypeDefaultDescription

Returns

{
  on: (eventName: string, callback: ListenFunction) => UnlistenFunction,
  fire: (
    eventName: string,
    data: { [key: string]: any }
  ) => Promise<boolean>;
}

useFirebaseEvents()

Options (required *)

NameTypeDefaultDescription
name*stringThe event name
onEvent*(event: EventObject) => voidThe callback for when the event is fired

Returns

{
  unlisten: () => void,
  fireSingle: (
    data: { [key: string]: any }
  ) => Promise<boolean>;
}