{"id":10371,"date":"2025-07-14T09:01:34","date_gmt":"2025-07-14T09:01:34","guid":{"rendered":"https:\/\/orthian.vn\/?p=10371"},"modified":"2025-07-14T09:08:45","modified_gmt":"2025-07-14T09:08:45","slug":"what-is-supabase-baas","status":"publish","type":"post","link":"https:\/\/orthian.vn\/vi\/what-is-supabase-baas\/","title":{"rendered":"Supabase l\u00e0 g\u00ec? N\u1ec1n t\u1ea3ng m\u00e3 ngu\u1ed3n m\u1edf d\u01b0\u1edbi d\u1ea1ng d\u1ecbch v\u1ee5 v\u1edbi Postgres Auth Realtime v\u00e0 Edge Functions"},"content":{"rendered":"<p>Ph\u00e1t hi\u1ec7n <strong>Supabase, <\/strong>ngu\u1ed3n m\u1edf <strong>Backend nh\u01b0 m\u1ed9t d\u1ecbch v\u1ee5<\/strong> n\u1ec1n t\u1ea3ng cung c\u1ea5p Postgres Auth \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd, L\u01b0u tr\u1eef th\u1eddi gian th\u1ef1c v\u00e0 Ch\u1ee9c n\u0103ng Edge cho c\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 di \u0111\u1ed9ng hi\u1ec7n \u0111\u1ea1i<\/p>\n\n\n\n<p><strong>Supabase<\/strong> Supabase cung c\u1ea5p m\u1ed9t n\u1ec1n t\u1ea3ng back-end ho\u00e0n ch\u1ec9nh \u0111\u1ec3 c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 t\u1eadp trung v\u00e0o logic \u1ee9ng d\u1ee5ng. N\u1ec1n t\u1ea3ng n\u00e0y k\u1ebft h\u1ee3p s\u1ee9c m\u1ea1nh c\u1ee7a PostgreSQL v\u1edbi c\u00e1c t\u00ednh n\u0103ng hi\u1ec7n \u0111\u1ea1i nh\u01b0 lu\u1ed3ng d\u1eef li\u1ec7u th\u1eddi gian th\u1ef1c, x\u00e1c th\u1ef1c an to\u00e0n, l\u01b0u tr\u1eef t\u1ec7p v\u00e0 c\u00e1c ch\u1ee9c n\u0103ng bi\u00ean kh\u00f4ng c\u1ea7n m\u00e1y ch\u1ee7. Cho d\u00f9 b\u1ea1n \u0111ang x\u00e2y d\u1ef1ng nguy\u00ean m\u1eabu hay m\u1edf r\u1ed9ng quy m\u00f4 \u1ee9ng d\u1ee5ng \u0111ang ph\u00e1t tri\u1ec3n, Supabase \u0111\u1ec1u cung c\u1ea5p tools b\u1ea1n c\u1ea7n ngay khi c\u00e0i \u0111\u1eb7t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>1. Supabase l\u00e0 g\u00ec v\u00e0 BaaS c\u00f3 ngh\u0129a l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">1.1 Gi\u1ea3i th\u00edch v\u1ec1 Backend d\u01b0\u1edbi d\u1ea1ng d\u1ecbch v\u1ee5<\/h3>\n\n\n\n<p><strong>Ph\u1ea7n cu\u1ed1i<\/strong> nh\u01b0 m\u1ed9t <strong>D\u1ecbch v\u1ee5<\/strong> cung c\u1ea5p c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ee5 tr\u1ee3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef nh\u01b0 API c\u01a1 s\u1edf d\u1eef li\u1ec7u, d\u1ecbch v\u1ee5 x\u00e1c th\u1ef1c v\u00e0 l\u01b0u tr\u1eef t\u1ec7p \u0111\u1ec3 c\u00e1c nh\u00f3m ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 tr\u00e1nh vi\u1ec7c ph\u1ea3i x\u00e2y d\u1ef1ng c\u00e1c t\u00ednh n\u0103ng n\u00e0y t\u1eeb \u0111\u1ea7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">1.2 T\u1ed5ng quan v\u1ec1 Supabase<\/h3>\n\n\n\n<p>Supabase l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng BaaS ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean <strong>PostgreSQL<\/strong>. M\u1ee5c ti\u00eau c\u1ee7a n\u00f3 l\u00e0 tr\u1edf th\u00e0nh gi\u1ea3i ph\u00e1p thay th\u1ebf ngu\u1ed3n m\u1edf cho c\u00e1c gi\u1ea3i ph\u00e1p \u0111\u1ed9c quy\u1ec1n b\u1eb1ng c\u00e1ch cung c\u1ea5p h\u1ed7 tr\u1ee3 SQL \u0111\u1ea7y \u0111\u1ee7, c\u1eadp nh\u1eadt theo th\u1eddi gian th\u1ef1c v\u00e0 c\u00e1c ch\u1ee9c n\u0103ng kh\u00f4ng c\u1ea7n m\u00e1y ch\u1ee7 trong m\u1ed9t g\u00f3i duy nh\u1ea5t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>2. C\u00e1c t\u00ednh n\u0103ng c\u1ed1t l\u00f5i c\u1ee7a Supabase<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">2.1 C\u01a1 s\u1edf d\u1eef li\u1ec7u Postgres \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch ho\u00e0n to\u00e0n v\u1edbi Postgres v\u1edbi ch\u1ebf \u0111\u1ed9 xem b\u1ea3ng, quy tr\u00ecnh \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef v\u00e0 ti\u1ec7n \u00edch m\u1edf r\u1ed9ng nh\u01b0 PostGIS<\/li>\n\n\n\n<li>Sao l\u01b0u t\u1ef1 \u0111\u1ed9ng v\u00e0 ph\u1ee5c h\u1ed3i t\u1ea1i th\u1eddi \u0111i\u1ec3m c\u1ee5 th\u1ec3<\/li>\n\n\n\n<li>B\u1ea3ng \u0111i\u1ec1u khi\u1ec3n d\u1ef1a tr\u00ean web \u0111\u1ec3 qu\u1ea3n l\u00fd l\u01b0\u1ee3c \u0111\u1ed3 v\u00e0 duy\u1ec7t d\u1eef li\u1ec7u<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">2.2 X\u00e1c th\u1ef1c linh ho\u1ea1t<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u0103ng nh\u1eadp b\u1eb1ng email v\u00e0 m\u1eadt kh\u1ea9u<\/li>\n\n\n\n<li>C\u00e1c nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 \u0111\u0103ng nh\u1eadp x\u00e3 h\u1ed9i nh\u01b0 Google, GitHub, v.v.<\/li>\n\n\n\n<li>Li\u00ean k\u1ebft ma thu\u1eadt \u0111\u1ec3 truy c\u1eadp kh\u00f4ng c\u1ea7n m\u1eadt kh\u1ea9u<\/li>\n\n\n\n<li>Ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt c\u1ea5p h\u00e0ng \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh trong c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">2.3 Lu\u1ed3ng d\u1eef li\u1ec7u th\u1eddi gian th\u1ef1c<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u0103ng k\u00fd thay \u0111\u1ed5i b\u1ea3ng Postgres qua WebSockets<\/li>\n\n\n\n<li>L\u00fd t\u01b0\u1edfng cho c\u00e1c \u1ee9ng d\u1ee5ng tr\u00f2 chuy\u1ec7n, b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n tr\u1ef1c ti\u1ebfp v\u00e0 c\u00e1c t\u00ednh n\u0103ng c\u1ed9ng t\u00e1c<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">2.4 L\u01b0u tr\u1eef t\u1ec7p<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u01b0u tr\u1eef theo nh\u00f3m cho h\u00ecnh \u1ea3nh, video v\u00e0 t\u00e0i li\u1ec7u<\/li>\n\n\n\n<li>URL \u0111\u00e3 k\u00fd \u0111\u1ec3 truy c\u1eadp an to\u00e0n<\/li>\n\n\n\n<li>T\u00edch h\u1ee3p m\u1ea1ng ph\u00e2n ph\u1ed1i n\u1ed9i dung \u0111\u1ec3 ph\u00e2n ph\u1ed1i nhanh ch\u00f3ng tr\u00ean to\u00e0n c\u1ea7u<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:30px\">2.5 H\u00e0m c\u1ea1nh<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vi\u1ebft c\u00e1c h\u00e0m kh\u00f4ng c\u00f3 m\u00e1y ch\u1ee7 b\u1eb1ng JavaScript ho\u1eb7c TypeScript<\/li>\n\n\n\n<li>Tri\u1ec3n khai \u0111\u1ebfn c\u00e1c v\u1ecb tr\u00ed bi\u00ean to\u00e0n c\u1ea7u \u0111\u1ec3 gi\u1ea3m thi\u1ec3u \u0111\u1ed9 tr\u1ec5<\/li>\n\n\n\n<li>C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng bao g\u1ed3m tr\u00ecnh x\u1eed l\u00fd webhook, t\u00e1c v\u1ee5 theo l\u1ecbch tr\u00ecnh v\u00e0 \u0111i\u1ec3m cu\u1ed1i API t\u00f9y ch\u1ec9nh<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>3. L\u1ee3i \u00edch ch\u00ednh c\u1ee7a Supabase<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Thi\u1ebft l\u1eadp ph\u1ea7n ph\u1ee5 tr\u1ee3 nhanh ch\u00f3ng trong v\u00e0i ph\u00fat m\u00e0 kh\u00f4ng c\u1ea7n c\u1ea5u h\u00ecnh c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng<\/li>\n\n\n\n<li>C\u01a1 s\u1edf m\u00e3 ngu\u1ed3n m\u1edf v\u1edbi t\u00f9y ch\u1ecdn t\u1ef1 l\u01b0u tr\u1eef \u0111\u1ec3 tr\u00e1nh b\u1ecb nh\u00e0 cung c\u1ea5p kh\u00f3a ch\u1eb7t<\/li>\n\n\n\n<li>C\u00e1c m\u1ed1i quan h\u1ec7 SQL th\u1ef1c s\u1ef1 v\u00e0 c\u00e1c truy v\u1ea5n n\u00e2ng cao v\u01b0\u1ee3t tr\u1ed9i h\u01a1n c\u00e1c gi\u1ea3i ph\u00e1p thay th\u1ebf NoSQL<\/li>\n\n\n\n<li>\u0110\u01b0\u1ee3c x\u00e2y d\u1ef1ng theo h\u00ecnh th\u1ee9c \u0111\u0103ng k\u00fd th\u1eddi gian th\u1ef1c m\u00e0 kh\u00f4ng c\u1ea7n m\u00e1y ch\u1ee7 b\u1ed5 sung<\/li>\n\n\n\n<li>D\u1ec5 d\u00e0ng t\u00edch h\u1ee3p v\u1edbi c\u00e1c framework ph\u1ed5 bi\u1ebfn nh\u01b0 React Next.js, Vue, Flutter v\u00e0 React Native<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>4. H\u1ea1n ch\u1ebf v\u00e0 c\u00e2n nh\u1eafc<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chi ph\u00ed \u0111\u0103ng k\u00fd theo th\u1eddi gian th\u1ef1c c\u00f3 th\u1ec3 t\u0103ng l\u00ean khi c\u00f3 nhi\u1ec1u ng\u01b0\u1eddi \u0111\u0103ng k\u00fd<\/li>\n\n\n\n<li>B\u0103ng th\u00f4ng l\u01b0u tr\u1eef v\u00e0 gi\u1edbi h\u1ea1n k\u00edch th\u01b0\u1edbc t\u1ec7p thay \u0111\u1ed5i t\u00f9y theo g\u00f3i<\/li>\n\n\n\n<li>Ch\u1ee9c n\u0103ng Edge l\u00e0 m\u1ed9t c\u00f4ng ngh\u1ec7 \u0111ang ho\u00e0n thi\u1ec7n v\u1edbi kh\u1ea3 n\u0103ng ch\u1eadm tr\u1ec5 khi kh\u1edfi \u0111\u1ed9ng ngu\u1ed9i<\/li>\n\n\n\n<li>Row Level Security cung c\u1ea5p kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t t\u1ed1t, nh\u01b0ng c\u1ea7n c\u00f3 th\u1eddi gian \u0111\u1ec3 h\u1ecdc c\u00e1c ch\u00ednh s\u00e1ch ph\u1ee9c t\u1ea1p<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>5. C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng l\u00fd t\u01b0\u1edfng cho Supabase<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nguy\u00ean m\u1eabu kh\u1edfi nghi\u1ec7p v\u00e0 c\u00e1c s\u1ea3n ph\u1ea9m kh\u1ea3 thi t\u1ed1i thi\u1ec3u<\/li>\n\n\n\n<li>C\u00e1c \u1ee9ng d\u1ee5ng y\u00eau c\u1ea7u c\u00e1c t\u00ednh n\u0103ng th\u1eddi gian th\u1ef1c nh\u01b0 tr\u00f2 chuy\u1ec7n ho\u1eb7c c\u1ed9ng t\u00e1c tr\u1ef1c ti\u1ebfp<\/li>\n\n\n\n<li>C\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 di \u0111\u1ed9ng c\u00f3 \u00edt h\u01a1n n\u0103m tr\u0103m ngh\u00ecn ng\u01b0\u1eddi d\u00f9ng ho\u1ea1t \u0111\u1ed9ng h\u00e0ng th\u00e1ng<\/li>\n\n\n\n<li>C\u00e1c d\u1ef1 \u00e1n ngu\u1ed3n m\u1edf ho\u1eb7c gi\u1ea3i ph\u00e1p t\u1ef1 l\u01b0u tr\u1eef c\u1ea7n c\u00e1c d\u1ecbch v\u1ee5 ph\u1ee5 tr\u1ee3 linh ho\u1ea1t<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:30px\"><strong>6. K\u1ebft lu\u1eadn<\/strong><\/h2>\n\n\n\n<p>Supabase cung c\u1ea5p m\u1ed9t n\u1ec1n t\u1ea3ng backend m\u00e3 ngu\u1ed3n m\u1edf to\u00e0n di\u1ec7n, k\u1ebft h\u1ee3p x\u00e1c th\u1ef1c Postgres \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd, lu\u1ed3ng d\u1eef li\u1ec7u th\u1eddi gian th\u1ef1c, l\u01b0u tr\u1eef v\u00e0 c\u00e1c ch\u1ee9c n\u0103ng bi\u00ean. N\u1ec1n t\u1ea3ng n\u00e0y gi\u00fap t\u0103ng t\u1ed1c ph\u00e1t tri\u1ec3n, gi\u1ea3m chi ph\u00ed c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 t\u1eadn d\u1ee5ng SQL cho c\u00e1c truy v\u1ea5n ph\u1ee9c t\u1ea1p.<\/p>\n\n\n\n<p>N\u1ebfu b\u1ea1n c\u1ea7n m\u1ed9t gi\u1ea3i ph\u00e1p backend hi\u1ec7n \u0111\u1ea1i \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean c\u00f4ng ngh\u1ec7 c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u00e3 \u0111\u01b0\u1ee3c ch\u1ee9ng minh, <strong>Orthian<\/strong> s\u1eb5n s\u00e0ng gi\u00fap b\u1ea1n t\u00edch h\u1ee3p v\u00e0 t\u1ed1i \u01b0u h\u00f3a <strong>Supabase<\/strong> cho nhu c\u1ea7u \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<p><strong>Ki\u1ec3m tra th\u00eam ki\u1ebfn th\u1ee9c v\u1ec1 nh\u1eefng kh\u00e1c bi\u1ec7t kh\u00e1c b\u00ean d\u01b0\u1edbi<\/strong>:<\/p>\n\n\n\n<p><a href=\"https:\/\/orthian.vn\/vi\/what-is-nodejs\/\">Node.js l\u00e0 g\u00ec? Kh\u00e1m ph\u00e1 JavaScript ph\u00eda m\u00e1y ch\u1ee7 v\u00e0 NestJS<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/orthian.vn\/vi\/php-laravel-web-development-framework-guide\/\">PHP l\u00e0 g\u00ec? T\u00ecm hi\u1ec3u v\u1ec1 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh web ph\u1ed5 bi\u1ebfn nh\u1ea5t v\u00e0 c\u00e1c framework h\u00e0ng \u0111\u1ea7u<\/a><\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Discover Supabase, the open-source Backend as a Service platform offering managed Postgres Auth, Realtime Storage, and Edge Functions for modern web and mobile apps Supabase delivers a complete backend platform so developers can focus on application logic. It combines the power of PostgreSQL with modern features such as real-time data streams, secure authentication, file storage, [&hellip;]<\/p>","protected":false},"author":6,"featured_media":10376,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[53],"tags":[172,173,174],"highlight":[],"class_list":["post-10371","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insights-analyses","tag-supabase","tag-backend-as-a-service","tag-supabase-features"],"acf":[],"_links":{"self":[{"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/posts\/10371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/comments?post=10371"}],"version-history":[{"count":0,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/posts\/10371\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/media\/10376"}],"wp:attachment":[{"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/media?parent=10371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/categories?post=10371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/tags?post=10371"},{"taxonomy":"highlight","embeddable":true,"href":"https:\/\/orthian.vn\/vi\/wp-json\/wp\/v2\/highlight?post=10371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}