Giter VIP home page Giter VIP logo

rowyio / rowy Goto Github PK

View Code? Open in Web Editor NEW
5.7K 59.0 475.0 21.88 MB

Low-code backend platform. Manage database on spreadsheet-like UI and build cloud functions workflows in JS/TS, all in your browser.

Home Page: http://rowy.io

License: Other

HTML 0.23% TypeScript 99.47% CSS 0.02% JavaScript 0.28%
firebase firestore backend cloud-functions cms cms-backend low-code react spreadsheet typescript

rowy's Introduction

✨ Airtable-like UI for managing database ✨ Build any automation, with or without code ✨

Connect to your database and create Cloud Functions in low-code - without leaving your browser.
Focus on building your apps. Low-code for Firebase and Google Cloud.

Live Demo 🛝

💥 Explore Rowy on live demo playground 💥

Features ✨

20211004-RowyWebsite.mp4

Powerful spreadsheet interface for Firestore

  • CMS for Firestore
  • CRUD operations
  • Bulk import or export data - csv, json, tsv
  • Sort and filter by row values
  • Lock, Freeze, Resize, Hide and Rename columns
  • Multiple views for the same collection

Automate with cloud functions and ready made extensions

  • Build cloud functions workflows on field level data changes
    • Use any NPM modules or APIs
  • Connect to your favourite tool with pre-built code blocks or create your own
    • SendGrid, Algolia, Twilio, Bigquery and more

Rich and flexible data fields

  • 30+ fields supported
    • Basic types: Short Text, Long Text, Email, Phone, URL…
    • Custom UI pickers: Date, Checkbox, Single Select, Multi Select…
    • Uploaders: Image, File
    • Rich Editors: JSON, Code, Rich Text (HTML), Markdown
  • Data validation, default values, required fields
  • Action field: Clickable trigger for any Cloud Function
  • Aggregate field: Populate cell with value aggregated from the row’s sub-table
  • Connector field: Connect data from multiple table collections
  • Connect Service: Get data from any HTTP endpoint

Collaborate with your team

  • Granular table-level and field-level permission control
    with role based access controls
  • Built in user management
  • Customizable views for different user roles

Quick guided install

Set up Rowy on your Google Cloud Platform project with this easy deploy button. Your data and cloud functions stay on your own Firestore/GCP and is managed via a cloud run instance that operates exclusively on your GCP project. So we do do not access or store any of your data on Rowy.

Guided quick start button

https://rowy.app

Documentation

You can find the full documentation with how-to guides and templates here.

Manual Install

We recommend the quick guided install option above. Manual install option is only recommended if you want to develop and contribute to the project. Follow this guide for manual setup.

Roadmap

View our roadmap on Rowy - Upvote, downvote, share your thoughts!

If you'd like to propose a feature, submit an issue here.

Support the project

Help

rowy's People

Contributors

anushdeokar avatar bofeiw avatar coder-mina avatar darianico avatar dependabot[bot] avatar devsgnr avatar gibsonliketheguitar avatar harinij avatar htuerker avatar iamanishroy avatar il3ven avatar itsermin avatar janvi01 avatar knshiro avatar matthewtsmith avatar mnmt7 avatar mshamsrainey avatar nandinikaregowdra avatar nithinrdy avatar notsidney avatar rajgm avatar rishi-raj-jain avatar rishipurwar1 avatar rjackson avatar saravanan-inc avatar scotty595 avatar shamsmosowi avatar staticguru avatar yamankatby avatar zeeshan1212 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  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

rowy's Issues

Instructions says to upgrade firebase project to 'Blaze Plan'

Describe the bug
Instructions says to upgrade firebase project to 'Blaze Plan'. However, there is no reason or consequences mentioned. Will Project not work if I am not on Blaze plan? and reason for moving to Blaze plan not mentioned. I am trying to explore this solution. But as I am just starting, I am hesitant to move to Blaze plan. Please help.

To Reproduce
Readme instructions

Expected behavior
Explain in a sentence on why Blaze plan is needed.

Screenshots
not needed

Desktop (please complete the following information):
Firebase Project

Smartphone (please complete the following information):
All

Additional context
Add any other context about the problem here.

Firetable home Page appears to be blank on every run with number of warnings on console | yarn serve turns into 404 | Platform: Fedora 31

With new Master branch: I tried and install the project and run using npm start, the Project seems to be unstable as Project homepage use to be blank every time and in console i am getting below:

Compiled with warnings.

./src/components/Grid/AlgoliaFilters.tsx
Line 105:6: React Hook useEffect has missing dependencies: 'requestDispatch' and 'requiredFilters'. Either include them or remove the dependency array. If 'requestDispatch' changes too often, find the parent component that defines it and wrap that definition in useCallback react-hooks/exhaustive-deps
Line 131:6: React Hook useEffect has a missing dependency: 'request'. Either include it or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/formatters/MultiSelect.tsx
Line 112:9: Imported JSX component MultiSelect_ must be in PascalCase or SCREAMING_SNAKE_CASE react/jsx-pascal-case

./src/components/Table/formatters/index.tsx
Line 115:5: Duplicate case label no-duplicate-case

./src/views/AuthViews/GoogleAuthView.tsx
Line 11:10: 'Link' is defined but never used @typescript-eslint/no-unused-vars
Line 79:11: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text

./src/contexts/firetableContext.tsx
Line 126:6: React Hook useEffect has a missing dependency: 'userClaims'. Either include it or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/Filters/index.tsx
Line 138:6: React Hook useEffect has missing dependencies: 'tableActions' and 'tableState'. Either include them or remove the dependency array react-hooks/exhaustive-deps
Line 138:22: React Hook useEffect has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked react-hooks/exhaustive-deps
Line 151:9: 'filters' is assigned a value but never used @typescript-eslint/no-unused-vars
Line 152:9: 'combineType' is assigned a value but never used @typescript-eslint/no-unused-vars
Line 325:9: Unreachable code no-unreachable

./src/components/SideDrawer/Form/Fields/RichText.tsx
Line 13:9: Imported JSX component _RichText must be in PascalCase or SCREAMING_SNAKE_CASE react/jsx-pascal-case

./src/components/Table/formatters/Image.tsx
Line 140:5: React Hook useCallback has missing dependencies: 'column.key', 'row.ref', and 'upload'. Either include them or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/ColumnMenu/index.tsx
Line 14:8: 'ReorderIcon' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/editors/CodeEditor.tsx
Line 150:6: React Hook useMemo has missing dependencies: 'listenEditorChanges' and 'tableState'. Either include them or remove the dependency array react-hooks/exhaustive-deps
Line 150:7: React Hook useMemo has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked react-hooks/exhaustive-deps

./src/components/SideDrawer/Form/Fields/ImageUploader.tsx
Line 155:5: React Hook useCallback has missing dependencies: 'name', 'onChange', and 'upload'. Either include them or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback react-hooks/exhaustive-deps

./src/components/Wizards/ImportWizard/Step1Columns.tsx
Line 16:3: 'Button' is defined but never used @typescript-eslint/no-unused-vars
Line 53:6: React Hook useMemo has a missing dependency: 'tableState'. Either include it or remove the dependency array react-hooks/exhaustive-deps
Line 53:7: React Hook useMemo has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked react-hooks/exhaustive-deps
Line 103:6: React Hook useEffect has missing dependencies: 'config', 'setConfig', and 'tableState'. Either include them or remove the dependency array. If 'setConfig' changes too often, find the parent component that defines it and wrap that definition in useCallback react-hooks/exhaustive-deps

./src/hooks/useFiretable/useTable.tsx
Line 183:6: React Hook useEffect has missing dependencies: 'getRows' and 'tableState'. Either include them or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/index.tsx
Line 1:17: 'lazy' is defined but never used @typescript-eslint/no-unused-vars
Line 1:23: 'Suspense' is defined but never used @typescript-eslint/no-unused-vars
Line 1:33: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars
Line 5:8: '_isEmpty' is defined but never used @typescript-eslint/no-unused-vars

./src/util/SnackProvider.tsx
Line 1:17: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars
Line 2:10: 'auth' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/ColumnMenu/Settings/ConfigFields/OptionsInput.tsx
Line 1:17: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars
Line 6:8: '_includes' is defined but never used @typescript-eslint/no-unused-vars
Line 7:8: '_camelCase' is defined but never used @typescript-eslint/no-unused-vars

./src/components/RolesSelector.tsx
Line 1:17: 'useState' is defined but never used @typescript-eslint/no-unused-vars
Line 1:27: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars
Line 2:10: 'FieldType' is defined but never used @typescript-eslint/no-unused-vars
Line 4:10: 'db' is defined but never used @typescript-eslint/no-unused-vars

./src/hooks/useAlgolia.ts
Line 1:33: 'useState' is defined but never used @typescript-eslint/no-unused-vars
Line 1:43: 'useContext' is defined but never used @typescript-eslint/no-unused-vars
Line 70:6: React Hook useEffect has a missing dependency: 'index'. Either include it or remove the dependency array react-hooks/exhaustive-deps

./src/hooks/useKeyPress.ts
Line 1:8: 'react' is defined but never used @typescript-eslint/no-unused-vars
Line 30:6: React Hook useEffect has missing dependencies: 'downHandler' and 'upHandler'. Either include them or remove the dependency array react-hooks/exhaustive-deps

./src/hooks/useWindowSize.ts
Line 23:6: React Hook useEffect has missing dependencies: 'getSize' and 'isClient'. Either include them or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/Filters/DocSelector.tsx
Line 28:6: React Hook useEffect has missing dependencies: 'labelReducer' and 'valueReducer'. Either include them or remove the dependency array react-hooks/exhaustive-deps

./src/components/Table/styles.ts
Line 2:10: 'APP_BAR_HEIGHT' is defined but never used @typescript-eslint/no-unused-vars

./src/components/SideDrawer/Form/Fields/SubTable.tsx
Line 2:10: 'Controller' is defined but never used @typescript-eslint/no-unused-vars

./src/firebase/callables.ts
Line 2:10: 'FireTableFilter' is defined but never used @typescript-eslint/no-unused-vars

./src/hooks/useSettings.ts
Line 2:18: 'DocActions' is defined but never used @typescript-eslint/no-unused-vars
Line 4:8: '_groupBy' is defined but never used @typescript-eslint/no-unused-vars
Line 5:8: '_find' is defined but never used @typescript-eslint/no-unused-vars
Line 24:6: React Hook useEffect has a missing dependency: 'documentDispatch'. Either include it or remove the dependency array react-hooks/exhaustive-deps

./src/components/Snack.tsx
Line 2:20: 'SnackbarOrigin' is defined but never used @typescript-eslint/no-unused-vars
Line 5:10: 'makeStyles' is defined but never used @typescript-eslint/no-unused-vars
Line 5:22: 'Theme' is defined but never used @typescript-eslint/no-unused-vars
Line 18:5: 'duration' is assigned a value but never used @typescript-eslint/no-unused-vars
Line 26:6: React Hook useEffect has a missing dependency: 'close'. Either include it or remove the dependency array react-hooks/exhaustive-deps

./src/assets/Firetable.tsx
Line 2:8: 'SvgIcon' is defined but never used @typescript-eslint/no-unused-vars
Line 3:20: 'Typography' is defined but never used @typescript-eslint/no-unused-vars
Line 4:10: 'getColorByBgColor' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/ImportCSV.tsx
Line 2:8: '_camelCase' is defined but never used @typescript-eslint/no-unused-vars
Line 19:8: 'AddCSVIcon' is defined but never used @typescript-eslint/no-unused-vars

./src/views/TablesView.tsx
Line 2:8: '_groupBy' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/formatters/RichText.tsx
Line 2:8: 'clsx' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/formatters/Duration.tsx
Line 32:9: 'classes' is assigned a value but never used @typescript-eslint/no-unused-vars

./src/components/Wizards/ImportWizard/utils.ts
Line 34:84: Unnecessary escape character: . no-useless-escape
Line 34:111: Unnecessary escape character: . no-useless-escape
Line 34:129: Unnecessary escape character: . no-useless-escape
Line 35:62: Unnecessary escape character: + no-useless-escape
Line 35:115: Unnecessary escape character: + no-useless-escape

./src/components/Table/editors/TextEditor.tsx
Line 38:3: Useless constructor @typescript-eslint/no-useless-constructor

./src/util/fns.ts
Line 38:41: Unnecessary escape character: + no-useless-escape
Line 38:94: Unnecessary escape character: + no-useless-escape

./src/components/Table/ExportCSV.tsx
Line 3:27: 'useCallback' is defined but never used @typescript-eslint/no-unused-vars
Line 4:8: '_camelCase' is defined but never used @typescript-eslint/no-unused-vars
Line 121:5: Duplicate case label no-duplicate-case

./src/components/Table/editors/SideDrawerEditor.tsx
Line 3:8: 'findIndex' is defined but never used @typescript-eslint/no-unused-vars
Line 28:6: React Hook useEffect has a missing dependency: 'sideDrawerRef'. Either include it or remove the dependency array react-hooks/exhaustive-deps
Line 40:18: Imported JSX component SideDrawerEditor
must be in PascalCase or SCREAMING_SNAKE_CASE react/jsx-pascal-case

./src/App.tsx
Line 3:8: '_merge' is defined but never used @typescript-eslint/no-unused-vars
Line 37:7: 'GridView' is assigned a value but never used @typescript-eslint/no-unused-vars

./src/components/HomeNavigation/index.tsx
Line 3:8: '_find' is defined but never used @typescript-eslint/no-unused-vars

./src/components/Table/editors/NullEditor.tsx
Line 3:8: '_findIndex' is defined but never used @typescript-eslint/no-unused-vars

Enable the Google sign-in method in Authentication / Sign-in

Regarding these "Setup Instructions" ...

  • Enable the Google sign-in method in Authentication / Sign-in method

⚠️ IMPORTANT: If you try to sign in and see “This account does not have any roles”, run the following script on your Firebase Authentication user.

  1. There is nothing on the Authentication / Sign-in page called "Firebase Authentication user".

  2. There are no apparent fields on the Authentication / Sign-in page to "run the following script".

cannot log in on new project

Hi, I just started a new firetable project using firetable init
I can start and serve it locally no problem. when I visit it in the browser, I get a login page and I try to login with my Google credentials. However, I get the following error: You need to enable Google authentication in your firebase project. I went to my console and enabled Google authentication and try logging in again. However, I get the same error.

I've looked at my auth tab in the Firebase console and can see indeed my Google account created a new user (timestamp matches today). I even stopped serving and tried reserving it. I still get the same error: You need to enable Google authentication in your firebase project

CSV import for a DATE column results in "Something went wrong" displayed in firetable

Describe the bug
A column in firetable is configured with the DATE type. When importing a CSV file with date data into this field, the result is "Something went wrong" is displayed. Several different date formats have been tried.

To Reproduce
Steps to reproduce the behavior:

  1. Create a firetable with a column of type DATE
  2. Import a csv file with a column having data in a date format into this DATE column. The following formats have been attempted:
  • m/d/yy
  • mm/dd/yy
  • mm/dd/yyyy
  • month day, yyyy
  • yyyy-mm-ddT00:00:00.000Z
  • yyyy-mm-ddT00:00:00Z
  1. The import will be successful but the firetable will display "Something went wrong" for this date value.

After manually entering a record into the firetable, we reviewed the data being stored via firebase and the date value is being stored as a timestamp instead of just a date. Exported the table data to confirm the format from an export and it is yyyy-mm-ddT00:00:00.000Z which is one of the formats listed above that was tried for importing.

Expected behavior
Firetable import will accept any date format, or a defined date format that is supported for import needs to be identified.

Desktop (please complete the following information):

  • OS: macOS 10.14.6
  • Browser: Safari
  • Version: 13.1

Filtering items shown on row connection field type based on values from other columns

Hi! I have created some columns of type row connection. These columns connect to rows of a table that is a group collection (merging items form a series of sub collections). I would like to filter the values the column shows based on the values of other columns. To illustrate, I would like to show the user a filtered list in the search items of buildings based in the company he has selected in the previous column. I see that there is an option for filter template, but there is no documentation on this, so I would really appreciate if you could give me some pointers. Here is an image to explain what I mean:

image

I also wanted to ask, is there anyway of making all items in a row connection selectable at once? Do you plan to support this?

issue with predeploy script "npm --prefix \"$RESOURCE_DIR\" run generator"

I'm getting below error when trying to deploy functions:

PS C:\Users\1gour\OneDrive\Documents\old\Github\firetable\cloud_functions\functions> firebase deploy --only functions

=== Deploying to 'evrcare-firebase'...

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run generator

> functions@ generator C:\Users\1gour\OneDrive\Documents\old\Github\firetable\cloud_functions\functions
> cd generator;node index.js

The system cannot find the path specified.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! functions@ generator: `cd generator;node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the functions@ generator script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\1gour\AppData\Roaming\npm-cache\_logs\2020-02-06T17_23_10_050Z-debug.log
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn npm --prefix "%RESOURCE_DIR%" run generator ENOENT
    at notFoundError (C:\Users\1gour\AppData\Roaming\nvm\v8.17.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
    at verifyENOENT (C:\Users\1gour\AppData\Roaming\nvm\v8.17.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
    at ChildProcess.cp.emit (C:\Users\1gour\AppData\Roaming\nvm\v8.17.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)

Error: functions predeploy error: Command terminated with non-zero exit code1

Having trouble? Try firebase [command] --help

Node: 8.17.0
Platform: Windows 10
Firebase: 7.12.1

Also, I tried deploying functions after removing "npm --prefix "$RESOURCE_DIR" run generator" but then the webapp got stuck at Auth screen. Nothing happens even when I try to authenticate.
image

Unable to unhide a column that was hidden using column settings

Describe the bug
Within the column settings a user can choose to hide a column. Once the column is hidden the user is not able to unhide the column from the firetable UI. Even trying to use the "Hide" button on the table does not allow the column to be unhidden.

To Reproduce
Steps to reproduce the behavior:

  1. Identify a column to hide
  2. Click on down arrow for the column to display the config options
  3. Select the "Hide" option. The column is now no longer visible in the table view but is still visible in the form view.
  4. On the table view, select the "Hide" button
  5. The column that was previously hidden is still showing as visible based on the "Hide" settings.
  6. Enable/disable the "Hide" option for the column and see that when you return to the table view the column still is not visible

Expected behavior
If a column is hidden, the user should be able to unhide it using the table view "Hide" button or some other method to update the column settings from the fireable UI

Desktop (please complete the following information):

  • OS: MacOS 10.14.6
  • Browser: Safari
  • Version: 13.1

Cannot undo "isCollectionGroup" toggle action

When I create a new table, I decide to make it a collection group table, by toggling the isCollectionGroup toggle.
image
When I try to edit the general settings of this table, the toggle does not appear to be activated, not reflecting the fact that this is a collection group. At the same time, I cannot undo the action to restore the table to a normal collection table.

Possibility to copy between databases/projects

Is your feature request related to a problem? Please describe.
A use case I have built scripts for in the past is copying data for tests or otherwise between projects/databases in firestore.

Describe the solution you'd like
The ability to add additional firebase project ids and then given a selection, you can copy/migrate data to another project.

Describe alternatives you've considered
Custom function using firebase shell to copy between projects and allow service account access to service project from host project.

Additional context
...

[deploy] deploy command is missing target

Describe the bug
The deploy command is missing the target

To Reproduce

Ejecute deploy command

yarn deploy 

Error output:
image

The fix here is to add the target argument functions

"deploy": "firebase deploy --token \"$FIREBASE_TOKEN\" --project antler-vc --only functions",

export is broken on demo site?

I just tried to export a random table from the demo site while logged into my google account. I got this error:

SOMETHING WENT WRONG
e.map is not a function

Firetable creates _FIRETABLE_ document in existing collections

Firetable creates FIRETABLE document in our existing collections and it's messing with our database and app.

Suggest to create separation between Firetable document entries and the existing database.
Eg. Place all the required Firetable documents/subcollections in the FIRETABLE main collection. Don't add documents in our existing collections.
image

Import csv file UI

While importing CSV file, the column selections are displayed in vertical alignment should be smaller font and horizontally aligned.

invalid field path error

I was playing around and adding some new columns. I think I hit 'Create' without giving the column an id / name. shortly after, I get this error:

FirebaseError: Invalid field path (columns.``.config). Paths must not be empty, begin with '.', end with '.', or contain '..'

I now can't do anything on the app because this error halts everything.

edit: I deleted the firetable project on my laptop and re-inited a new one. I get the same error.

Image compression and ordering feature

Is your feature request related to a problem? Please describe.
Currently images result in some slight slowness and needs compress for optimizing performance

Describe the solution you'd like
Image compression and ordering feature - ordering allows for shifting the order of image display

Need help: Existing collections not showing up

Describe the bug
I set up firetable according to the instructions, running it locally, but none of my existing collections are showing up. I can, however, create a new table. Using the CLI, I have given myself the admin and internal role.

I suspect that the issue is my firebase ruleset:

rules_version = "2";
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
         allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.user;
      allow create: if request.auth != null && request.auth.uid == request.resource.data.user;
    }
  
  	match /_FIRETABLE_/settings {

        // specify the roles that have access firetable configuration
        // this allows users to view tables and columns on firetable but without the ability to modify them
         allow read: if hasAnyRole(["ADMIN", "INTERNAL"]);
          match /{collection=**}/{tableName} {
            allow read: if hasAnyRole(["INTERNAL"])
         }
        
      }

      match /_FT_USERS/{docId} {
        // allows to store firetable user customizations such as filters and favorite tables
         allow get, update, create, write:if isOwner(docId)
      }

      // utility functions
    	function hasRole(role) {
         return role in request.auth.token.roles
    	}
    
      function hasAnyRole(roles) {
         return request.auth.token.roles.hasAny(roles)
      }
      function isOwner(docId) {
        // turns a boolean for if the authenticated user has the same uid as the resource document id
         return request.auth.uid == resource.id || request.auth.uid == docId
      }
   }
}

I'm grateful for any pointers as to what I've missed. Thanks!

Error Please Help

Hi there, I would really like to use this, but I get this error. Please be so kind and have a look. I am quite new to Firebase and Java, so please be patient.

Thank you

Firetable_error

Can't Sign In

Describe the bug
A clear and concise description of what the bug is.

Follow Google Sign-In flow, Google Sign-In enabled in project, modal "succeeds" then toast notification shows "This account does not exist" although the user exists in firebase after modal exits. Same behaviour on retry.

To Reproduce
Steps to reproduce the behavior:

  1. Click 'Sign In with Google'
  2. Click on Google profile. Successfully receives token from Google when checking console.
  3. Modal exits and toast appears saying "This account does not exist." in green with a checkmark icon.

Expected behavior
A clear and concise description of what you expected to happen.

Expected to be signed in.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: MacOS Catalina 10.15.5 (19F101)
  • Browser Chrome
  • Version 83.0.4103.116 (Official Build) (64-bit)
    Screen Shot 2020-07-21 at 12 38 28 PM

Free text for single-select not working

Describe the bug
When editing the settings for a single-select column, the admin is given the choice to enable adding new select-options for other users. While this works for multi-select, it doesn't for single-select - on purpose, it seems?.
If so, perhaps the UI should be updated to not offer this option, when it doesn't exist. Or better, enable it for single-select which would be very useful :)

To Reproduce
Steps to reproduce the behavior:

  1. As admin, add a column and set it to single-select.
  2. Go to column settings, and enable "User can add new options."
  3. Log in as non-admin user and try to add a new select option.

Expected behavior
Expect to be able to add a new select option when it was enabled by the admin.

Document Select Field - Algolia integration

I have added the API Keys for algolia as well as created an index. I am trying to add Document Select field to my table in firetable, but I cannot get it to work. The dropdown just loads for ever when I click on it.

What I want is to be able to link a row in one table to a specific row of another table, establishing a relationship (a la foreign key). Is this possible?

Installation Instructions

About these instructions:

'Download the admin key for your project then add it to the directory without renaming it.'

  1. Cannot find anything in project settings called "admin key". Do you mean generate a new private key for the Admin SDK?

  2. What do you mean "add it" to "the directory"? Do you mean move it (the downloaded .json file) to the www directory (or somewhere else)?

About these instructions:

  1. What does "firestore rules you" mean?

'Firetable uses a Role based access control on top of firestore rules you.'

[installation] project contains the project id committed

Describe the bug
The project contains the Firebase project id committed

  • cloud_functions/.firebaserc
  • www/.firebaserc

To Reproduce
Open file cloud_functions/.firebaserc

File contains

{
  "projects": {
    "default":"antler-vc"
  }
}

Open File www/.firebaserc

{
  "projects": {
    "default": "antler-vc"
  },
  "targets": {
    "antler-vc": {
      "hosting": {
        "firetable": [
          "antler-admin"
        ]
      }
    }
  }
}

Expected behavior
Files should not contain project id or maybe files should be removed, unless this is done by design for a particular reason.

Table Views: display same table with different column configs & sections

first of all, this is a phenomenal project. we're looking at replacing our current reliance on Airtable with this because it has a large opportunity for being more powerful and functional.

I've discussed it with my team and there's one crucial feature that's holding us back: views. in production, we have a few views such as: 'volunteers', 'admin', 'Jon Chin', 'Marc and Melissa'. these views have different columns hidden.

is there any interest already in implementing something like this? what would be even better is if we can limit users to certain views, which is something Airtable doesn't do. for now, we just trust volunteers to only use the volunteers view.

I'd happy to contribute code to make this happen. just curious if such a feature is on your radar.

Uneditable percent field

I just added a few random fields. long text and datetime work fine. I have 2 percentage fields; the columns show up but I can't edit the value?

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.