Git Product home page Git Product logo

refi-app's Introduction

Refi App

It's a tool to give developers lesser pain when developing applications with Firestore. Save more time to focus on building applications instead of playing with Firebase's poor UI

You can query, insert, monitor and migration with our new Awesome client that solves it all.


⭐️ Don't forget to star this repo if this tool help your workflow

Features

📜 Table view - Easily view & edit large amounts of data like in Excel

Screen Shot 2021-04-08 at 18 28 20

🗒️ JSON Editor - You can add, edit documents like in your editor. No more wasted time clicking to just add a document

Screen Shot 2021-04-08 at 18 28 26

We integrated the Monaco Editor - aka VS Code core so you can feel at 🏠

👨‍💻 Built for Developers - With hotkeys, you can do anything without leaving your keyboard. We're developers, we love our keyboards

Screen Shot 2021-04-08 at 18 28 32

Press Cmd + Shift + P or Cmd + / to open Command list

Privacy - Your privacy is our first priority. We do not keep your data

We never collect your data. Your data is yours and always will be.

🚧 Preview changes - Edit data with confidence, without endangering your production environment

Screen Shot 2021-04-08 at 18 28 36

Download

https://github.com/thanhlmm/refi-app/releases

Development

https://github.com/thanhlmm/refi-app/blob/main/DEVELOPMENT.md

Issues

https://github.com/thanhlmm/refi-app/issues

refi-app's People

Contributors

aerglonus avatar guizmaii avatar sheriffyusuf avatar thanhlm27 avatar thanhlmm avatar theryan722 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

refi-app's Issues

Export is not working in 0.0.17

Hi, I love the app but on Mac it seem that the export functions are not working.
I can't export documents, table in any format. After clicking the button with right click or using shortcuts nothing happens.

Feature Request: Move collection, sub-collection and document to another path

Feature request

Currently, it is not possible to rename move collection, sub-collection or document. This is not possible in refi or in the default firebase-ui. To my mind, with refi, we have the opportunity to add such a function.

How should it work

A user should be able to long click a collection, sub-collection or document and then move it to another part.

Collection moving

When moving a collection to another part, it should only be possible to create a sub-collection out of this. For example, let's say we have the following db-structure before moving:

users (collection)
   -> user 1 (document)
documents (collection)
  -> item 1 (document)

after moving, it should look like this

users (collection)
   -> user 1 (document)
       -> documents (collection)
          -> item 1 (document)

Sub collection moving

Here, it should either be possible to create a new collection out of the existing sub-collection or move the sub-collection under a new document:

First idea:

users (collection)
   -> user 1 (document)
        -> documents (collection)
           -> item 1
   -> user 2

after (moved documents sub-collection from user1 to user2):

users (collection)
   -> user 1 (document)
   -> user 2
        -> documents (collection)
           -> item 1

Second idea:

users (collection)
   -> user 1 (document)
        -> documents (collection)
           -> item 1
   -> user 2

after (moved documents sub-collection at the top of the hierarchy):

users (collection)
   -> user 1 (document)
   -> user 2
documents (collection)
      -> item 1

Document moving

It should be possible to move a document from one collection to another. See the other headers for this.

Road map

To my mind, moving a collection and or a sub-collection is pretty complex, therefore one should create a road map for this request. The first part should be, that the user is able to move a document from one collection to another.

Bug: JSON Editor really buggy

Working with the JSON Editor is not like I thought it would be. For example, when copying text into it, refi does not recognize any changes, and therefore I cannot update the document

Not loading in WSL2 with Ubuntu 20.04

I've installed the deb release 0.10 in an Ubuntu 20.04 instance on Windows 11 with WSL2. In this same instance, I can run GIMP for example and the GUI will work. With Refi App, it does not fully start up. Is there anything more I can do to make this work? I have attached a screenshot. The full-screen window belongs to refi-app.
2021-11-30 14_16_00-Refi App (Ubuntu-20 04)

Cannot connect

Hello,

I've created a service account with (I think) proper permissions and I'm trying to connect.
However, after choosing the credentials file and hitting 'connect' I get this error message
image

Here are the roles that this account has:
image

What am I doing wrong?

Thanks

Feature Request: Collection Group Queries

Having the ability to see documents from different collections as one table would be extremely useful.

One example is having a 'teams' collection, and inside each 'team' you have a 'players' collection.
With Collection Group Queries you could have a table for all players, even if they're in different team collections.

Question about how refi-app works?

I could totally misunderstand the usage of this tool and a bit new to firestore, so please bear with me. With this tool, I should be able to visualize the data in the emulator no?

I have

  • firestore emulator running on port localhost:8003
  • Runing a golang unit test to just insert a collection and documents into the localhost:8003
  • Execute code to read from the emulator and it looks correct.
func TestPut(t *testing.T) {
	ctx := context.Background()
	//db := newFirestoreTestClient(ctx)
	//fsClient := &firestoreClient{db: db}
	//SetFirestoreClient(fsClient)
	project := "project"
	os.Setenv("FIRESTORE_EMULATOR_HOST", "localhost:8003")
	client, err := firestore.NewClient(ctx, project)

	if value := os.Getenv("FIRESTORE_EMULATOR_HOST"); value != "" {
		log.Printf("Using Firestore Emulator: %s", value)
	}

	if err != nil {
		log.Fatal(err)
	}
	defer client.Close()

	_, _, err = client.Collection("users").Add(ctx, map[string]interface{}{
		"first": "Ada",
		"last":  "Lovelace",
		"born":  1815,
	})

	if err != nil {
		log.Fatalf("Failed adding alovelace: %v", err)
	}

	iter := client.Collection("users").Documents(ctx)
	for {
		doc, err := iter.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			log.Fatalf("Failed to iterate: %v", err)
		}
		fmt.Println(doc.Data())
	}

}

output

=== RUN   TestPut
2022/07/10 16:52:57 pipeline_stage_metadata_test.go:23: Using Firestore Emulator: localhost:8003
map[born:1815 first:Ada last:Lovelace]
map[born:1815 first:Ada last:Lovelace]
map[born:1815 first:Ada last:Lovelace]
map[born:1815 first:Ada last:Lovelace]
map[born:1815 first:Ada last:Lovelace]
--- PASS: TestPut (0.04s)
PASS

However, When i try to refresh the refid app tool, once i connect successfully to localhost:8003, I would expect to see the collection or documents. but i'm not seeing anything.

image

emulator firebase config:

{
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "y"
  },
  "emulators": {
    "firestore": {
      "port": 8003
    },
    "ui": {
      "enabled": true,
      "port": 4000
    }
  },
  "functions": {
    "source": "functions"
  }
}

Am i missing something?

Thanks,
Derek

How to query a child variable under the object? throws error

Hi,
Below is my doc in firestore and i am trying to query using filter "audit.CreatedProcess" with String value of "oneTimeLoad" but it throws errors stating. how to sort it? is there any document that explains how to play with this tool for query?

image

{
  "audit": {
    "createdAt": "__Timestamp__2022-06-18T01:47:41.559Z",
    "createdBy": "author",
    "createdProcess": "oneTimeLoad"
  },
  "homeAddress": {
    "city": "To be removed"
  },
  "personId": "a5287078-eea8-11ec-af99-47bba4a2ad21",
  "residentialAddress": {}
}

Feature Request: Rename collections, sub-collections and documents

Feature Request

Currently, it is not possible to rename any collection, sub-collection or document. This is not possible in refi or in the default firebase-ui. To my mind, with refi, we have the opportunity to add such a function.

How should it work?

As said before, there is no default way to rename a collection, sub-collection or document. What I have in mind is the following:

Collection renaming

The user "right-clicks on nav-menu > rename collection". Then a pop-up comes up where the user puts a new name. Under the text-field there is a warning text saying:

"BE AWARE. RENAMING A COLLECTION MEANS THAT THE OLD COLLECTION-DATA GETS COPIED INTO THE NEW NAMED COLLECTION, AND THEN THE OLD COLLECTION GETS DELETED. This will result in many reads and writes, and one should be cautious with big collections!

Collection renaming screenshot (pop-up)

grafik

Document renaming

The user "right clicks on nav-menu-document > rename document". Then a pop-up comes up there the user puts a new name. Under the text-field there is a warning text saying

"BE AWARE. RENAMING A DOCUMENT MEANS THAT THE OLD DOCUMENT-DATA GETS COPIED INTO THE NEW NAMED DOCUMENT, AND THEN THE OLD DOCUMENT GETS DELETED. This will result in a read and write result, and one should be cautious with a big document!"

Documen renaming screenshot (pop-up)

See header "Collection renaming screenshot"

How to program collection renaming (Pseudocode)

  1. Start Transaction
  2. Write query on desired collection
  3. Check: Has collection > 500 documents
  4. IF YES: Split renaming into multiple parts, as Transaction can only read up to 500 documents
  5. Read all documents from collection
  6. Create new collection and put all read documents in there
  7. Check if successful
  8. Delete old collection
  9. End Transaction

How to program document renaming (Pseudocode9

  1. Start Transaction
  2. Get desired document
  3. Write new document with desired name
  4. Delete old document
  5. End Transaction

App crashes on fedora 35

App does not start.
log

12:21:10.183 › Created db file
12:21:10.218 › checking 1
12:21:10.229 › checking 2
12:21:10.236 › checking 3
12:21:10.242 › found socket 3
12:21:10.243 › Create background process for refiapp_3
12:21:10.254 › Done create background process #53713
12:21:10.556 › Notified client that the background process is live
12:21:10.627 › Created db file
12:21:10.645 › Starting IPC server
12:21:10.645 › [
  '/usr/lib/refi-app/refi-app',
  '/usr/lib/refi-app/resources/app/dist/workers/server.js',
  '--subprocess',
  '0.0.10',
  'refiapp_3'
]
12:21:10.648 › Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/app.refiapp_3
12:21:10.649 › Initiated IPC server v0.0.10
12:21:10.650 › starting server on  /tmp/app.refiapp_3 
12:21:10.650 › starting TLS server false
12:21:10.651 › starting server as Unix || Windows Socket
12:21:11.413 › ## socket connection to server detected ##
12:21:11.419 › received event of :  message {"id":"e27a9054-c807-427e-ae4e-7244a3528589","name":"cert.getKeys","args":null}
12:21:11.421 › dispatching event to socket  :  message {"type":"reply","id":"e27a9054-c807-427e-ae4e-7244a3528589","result":[]}
12:21:11.422 › received event of :  message {"id":"9da26813-636e-4091-8fe5-8c145235e491","name":"fs.getSimulatorData"}
12:21:11.438 › dispatching event to socket  :  message {"type":"reply","id":"9da26813-636e-4091-8fe5-8c145235e491","result":{"ok":false}}
[53662:1108/122111.880670:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
Trace/breakpoint trap (core dumped)
12:21:13.025 › socket disconnected false

Timestamp String

When importing a Timestamp from a JSON file it always sets the field as a string as opposed to a timestamp.

Not sure if this is something that can be fixed?

Geopoint fields are incorrectly overwritten

In my document there is a map named geoPoint and it looks like

geoPoint: {
					"latitude": 32.56,
					"longitude": -122.00,
				}

Refi keeps showing this as a of type geoPoint. And when I manually change it to a map it still auto changes it to type geoPoint and not a map named geoPoint.

It looks like refi assumes it's of type GeoPoint if the field name is GeoPoint, which is incorrect and prevents the ability to use this :(

Bug: Cannot update Emulator

I don't know what exactly I am doing wrong, but whatever I do, the app does not update the emulators data. Deleting, creating or changing any data does nothing (can't see the changes in google chrome "localhost:4000/firestore"

Version: Windows 10

Feature Request: Add manual refresh button

Feature Request

Sometimes the data inside refi-app and the real firebase-data are not the same (out of sync). There should be a button to manually refresh the data. Currently, I am closing the app and restarting it, so it gets the new data.

Current Behavior

App needs to be restarted in order to get the newest data sometimes

Wanted Behavior

There should be a refresh-button to get the newest data

Building server needs @todesktop/cli

So when trying to build the server of the last version 0.0.19, it shows:

$ yarn run build-ts
$ tsc --sourceMap false
/bin/sh: línea 1: todesktop: orden no encontrada
error Command failed with exit code 127.

So I installed the lib as global and it asks for a login.

BUG: Windows Button "Minimizing, Closing, Adding new Tab" not working

BUG REPORT

When trying to click on any button at the top of the app (e.g "Add Tab (+)", Close App (x), Minimize (-) etc.) nothing happens. The app needs to be closed via "Task bar > Right click app > close". Minimizing only works when double-clicking the menu bar.

Expected Behavior

The Buttons should work and the user should be able to add a new tab, close the app, minimize it etc.

System

Windows 10 Pro 64Bit
Version 0.0.9

Screenshot

grafik

Dark mode

I use this app every single day for the last several months. My workflow has increased exponentially thanks to this amazing GUI! After several months of using it, my eyes get sore after a couple of hours due to the bright UI. I know supporting dark mode is not an important first issue, but it could be a nice enhancement.

Thank you for the wonderful work on this GUI!

Renaming Tabs

Thank you for such an amazing app! Just one thing would be awesome if I could rename the tabs up top because I often work between a couple different Firebase projects.

Unable to develop on M1 mac

Screenshot 2021-12-06 at 11 18 05 AM

I am trying to run the build command in tree but it's saying it does not exist in the package.json
So I tried to run npx father build After that I got the 2 folders lib and es in the tree folder. and after that I run

yarn dev in vite folder

Screenshot 2021-12-06 at 11 21 46 AM

I want to contribute to this project.

Clarify license

Hi could you please clarify the license, I am having a hard time finding the copying and license file.

Fatal Layout issue on Linux

I've downloaded and installed v0.0.10. No problem at that point.
When I launch the app, a greyish window appears with a dialog half hidden on the right side to choose credentials
The main window is resizable but doing so doesn't allow the dialog to appear. It sticks to the right edge, making the app useless, which is a shame because it looks really promissing!!

image

My box:
System: Kernel: 5.4.0-91-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 Desktop: Cinnamon 4.8.6
wm: muffin dm: LightDM Distro: Linux Mint 20.1 Ulyssa base: Ubuntu 20.04 focal

Machine: Type: Laptop System: HP product: HP ZBook 14u G5 v: N/A serial: Chassis:
type: 10 serial:
Mobo: HP model: 83B2 v: KBC Version 04.53.00 serial: UEFI [Legacy]: HP
v: Q78 Ver. 01.03.00 date: 07/18/2018

CPU: Topology: Quad Core model: Intel Core i7-8650U bits: 64 type: MT MCP arch: Kaby Lake
rev: A L2 cache: 8192 KiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 33599
Speed: 800 MHz min/max: 400/4200 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800
5: 800 6: 800 7: 799 8: 800

Graphics: Device-1: Intel UHD Graphics 620 vendor: Hewlett-Packard driver: i915 v: kernel
bus ID: 00:02.0 chip ID: 8086:5917
Device-2: AMD Lexa XT [Radeon PRO WX 3100] vendor: Hewlett-Packard driver: amdgpu
v: kernel bus ID: 01:00.0 chip ID: 1002:6985
Display: x11 server: X.Org 1.20.11 driver: amdgpu,ati,modesetting unloaded: fbdev,vesa
resolution: 1920x108060Hz, 1280x102460Hz, 1280x1024~60Hz
OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.0.3
direct render: Yes

Documents that have dots in their name are misinterpreted in the left tree

I have documents with IDs which are domain names.
Basically a collection called published_forms has a document per each domain name, and the id of each doc is the domain name.

In Refi it looks like this:
image
While in FB UI it looks like this:
image

Additionally, in my case the doc itself is empty, except for a sub-collection. However, the sub collection is not visible in Refi UI.

Feature Request: Import JSON/CSV without creating a collection first

Feature Request

It should be possible to import a JSON/CSV on its own and then create a collection from this.

Current Behavior

A user has to first create the collection, and then he is able to import a JSON/CSV

Expected Behavior

There should be an import button on its own, in which the user imports the json/csv and then a pop-up comes and asks the user "how would you like to name the collection?"

Feature request: Bookmarks

It would be super handy if I was able to bookmark queries or documents so I can easily go back to them later.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.