-
Notifications
You must be signed in to change notification settings - Fork 4
Firebase App Database
The Firebase Database is mainly used for the frontend app. It can be accessed via the web interface or api methods in react native.
- Access to the firebase project (can be granted by the software developers)
- Firebase account (login with a google account is also possible)
- For react native development: firebase configuration in
.envfile in the project root directory (containing api keys and similar, message a developer to get the contents)
Open the Amos Agent Framework Project in your web browser. Probably the two main functionalities that are needed can be found under Build/Authentication and Build/Firestore Database


In this tab you can see and manage (if you have the rights) information concerning user accounts registered in the app. Different sign-in methods can be set up (e.g. google and email signin). This tab can also be used to add new users, reset passwords, see registered email-addresses which partain to account user UIDs, etc.

In the firestore database you can organise data into collections that contain documents. The entries in this database can be retrieved in react native to for example display a username or chat.
At this moment, we have a users collection containing all the users.

Here you can also create a user for yourself for testing purposes. For reference, see the already existing users.
Each user can possess a chats collection containing all the different conversations with the chatbots. Here you can create new chats or see existing ones.

Right now, a chat contains a conversation array, createdAt timestamp, model string and a title string.
For usage of the stored data in react native, you can for example take a look at the src/frontend/hooks/ directory where different hooks for retrieving chat data are already implemented. For example:
-
useGetAllChatreturns{ chats: Chat[], status: string, error: Error }a list of all stored chats for the logged in user, the status of retrieval and an error object
type Chat = {
id?: string;
title: string;
createdAt: Timestamp;
model: string[];
conversation: string[];
};-
useActiveChatIdcan be used to retrieve the current (or last) selected chat by the user. The active chat can also be changed via this hook. Example usage:
// access the hook
const { activeChatId, setActiveChatId } = useActiveChatId();
// change active id
useEffect(() => {
setActiveChatId(id)
}, [condition]);similar hooks exist for
-
useDeleteChatdelete a chat by chat id -
useGetChatget one single chat by chat id -
useUpdateChatoverwrite the stored content of a chat with specified id -
useLLMsretrieve active LLMs for the current active (or selected) chat or toggle LLMs on or off. At least one LLM should be on
For documentation about how to retrieve data from the firebase in React Native on a more granular level, see for example the documentation of react-native-firebase.