Skip to main content

Supabase

还没翻译译自英文(developers.cloudflare.com)本页 43 段都还没译

Supabase is an open source Firebase alternative and a PostgreSQL database service that offers real-time functionality, database backups, and extensions. With Supabase, developers can quickly set up a PostgreSQL database and build applications.

Note

The Supabase client (@supabase/supabase-js) provides access to Supabase's various features, including database access. If you need access to all of the Supabase client functionality, use the Supabase client.

If you want to connect directly to the Supabase Postgres database, connect using Hyperdrive. Hyperdrive can provide lower latencies because it performs the database connection setup and connection pooling across Cloudflare's network. Hyperdrive supports native database drivers, libraries, and ORMs, and is included in all Workers plans. Learn more about Hyperdrive in How Hyperdrive Works.

Supabase clientHyperdrive

Supabase client setup

To set up an integration with Supabase:

  1. You need to have an existing Supabase database to connect to. Create a Supabase database or have an existing database to connect to Supabase and load data from.

  2. Create a countries table with the following query. You can create a table in your Supabase dashboard in two ways:

    • Use the table editor, which allows you to set up Postgres similar to a spreadsheet.
    • Alternatively, use the SQL editor:
    CREATE TABLE countries (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL
    );
  3. Insert some data in your newly created table. Run the following commands to add countries to your table:

    INSERT INTO countries (name) VALUES ('United States');
    INSERT INTO countries (name) VALUES ('Canada');
    INSERT INTO countries (name) VALUES ('The Netherlands');
  4. Configure the Supabase database credentials in your Worker:

    You need to add your Supabase URL and anon key as secrets to your Worker. Get these from your Supabase Dashboard under Settings > API, then add them as secrets using Wrangler:

    # Add the Supabase URL as a secret
    npx wrangler secret put SUPABASE_URL
    # When prompted, paste your Supabase project URL
    
    # Add the Supabase anon key as a secret
    npx wrangler secret put SUPABASE_KEY
    # When prompted, paste your Supabase anon/public key
  5. In your Worker, install the @supabase/supabase-js driver to connect to your database and start manipulating data:

    npmyarnpnpmbun

    npm i @supabase/supabase-js
  6. The following example shows how to make a query to your Supabase database in a Worker. The credentials needed to connect to Supabase have been added as secrets to your Worker.

    import { createClient } from "@supabase/supabase-js";
    
    export default {
    	async fetch(request, env) {
    		const supabase = createClient(env.SUPABASE_URL, env.SUPABASE_KEY);
    		const { data, error } = await supabase.from("countries").select("*");
    		if (error) throw error;
    		return new Response(JSON.stringify(data), {
    			headers: {
    				"Content-Type": "application/json",
    			},
    		});
    	},
    };

To learn more about Supabase, refer to Supabase's official documentation.