<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: bruce D</title>
    <description>The latest articles on DEV Community by bruce D (@bruce_doctor_515422886dae).</description>
    <link>https://dev.to/bruce_doctor_515422886dae</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1495601%2Fe097df5d-56cf-43c7-afef-8e433a672845.png</url>
      <title>DEV Community: bruce D</title>
      <link>https://dev.to/bruce_doctor_515422886dae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bruce_doctor_515422886dae"/>
    <language>en</language>
    <item>
      <title>Debug Expo app with real device(iOS)</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Wed, 13 Aug 2025 12:20:38 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/debug-expo-app-with-real-deviceios-1okn</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/debug-expo-app-with-real-deviceios-1okn</guid>
      <description>&lt;p&gt;Today. I am developing an apple that capture and and recognize the content using Expo-camera, but found that we can't debug the camere function in iOS simulator. we can only debug it with real iOS device.&lt;/p&gt;

&lt;p&gt;Here is the way &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;run &lt;code&gt;npm run ios&lt;/code&gt; to make sure the project compilied and installed successfully on the simulator,then &lt;strong&gt;teminate&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;pnpm prebuild&lt;/code&gt; to generate ios directory&lt;/li&gt;
&lt;li&gt;open &lt;code&gt;projectRoot/ios/youproject.xcodeworkspace&lt;/code&gt; directory with XCode&lt;/li&gt;
&lt;li&gt;make sure that you have connenct your iPhone/iPad with usb and trust your computer on your iPhone/iPad&lt;/li&gt;
&lt;li&gt;select your iPhone and then click &lt;code&gt;run&lt;/code&gt; button, debug version will be installed to your iPhone&lt;/li&gt;
&lt;li&gt;after installation, don't forget to run &lt;code&gt;npm start&lt;/code&gt;, there will be a QRcode in the terminal&lt;/li&gt;
&lt;li&gt;scan the QR code with your iPhone camera.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6nh0zn2oh6skk5ew5vv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6nh0zn2oh6skk5ew5vv.png" alt=" " width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>6th, prepare for testing release</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Tue, 29 Apr 2025 02:38:58 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/6th-prepare-for-testing-release-1h42</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/6th-prepare-for-testing-release-1h42</guid>
      <description>&lt;p&gt;I have resolved the problems yesterday, and refactor the tabs, now it's ready for testing. &lt;br&gt;
before testing, there are some works &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;create an website for the privacy-and-terms using &lt;a href="https://app-privacy-policy-generator.firebaseapp.com" rel="noopener noreferrer"&gt;this link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;deploy this website on Cloudflare Pages&lt;/li&gt;
&lt;li&gt;using another app to test deeplink&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I found That I can't testing the deeplink jumptation between app in the emulator, I will tested it in real device.&lt;/li&gt;
&lt;li&gt;I also find that I need to add edit and delete function of submissions, and intregrating deeplink in use's app is too complicate and not everyone want to do this, I need to make it easier of verifying testing behavior, they can just upload an screenshot &lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>github</category>
      <category>testing</category>
    </item>
    <item>
      <title>5th, I run into a few problems</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Mon, 28 Apr 2025 01:52:11 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/5th-i-run-into-a-few-problems-4bg3</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/5th-i-run-into-a-few-problems-4bg3</guid>
      <description>&lt;ol&gt;
&lt;li&gt;while saving the appInfo, I forget to save the userId as well, so I need to modify table on Supabase,and relative logic in EXPO.&lt;/li&gt;
&lt;li&gt;at that time,I noticed that I run into problems when fetching user's info, although I updated the store after user logging in with google. but the I just get error when access it.&lt;/li&gt;
&lt;li&gt;finally I found the problem, I show save userinfo into localstorage as well as the token, everytime open the app, read them and write into store&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>4th, save tester's behavior</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Sun, 27 Apr 2025 12:05:04 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/4th-save-testers-behavior-27i5</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/4th-save-testers-behavior-27i5</guid>
      <description>&lt;p&gt;In the 3rd post,we make AndroidClosingTestPairs get the tester's behavior using deeplink, now we need to submit this behavior, so that App's author can know who have tested his app.&lt;/p&gt;

&lt;h2&gt;
  
  
  firstly: we need to create a table to save the tester's info
&lt;/h2&gt;

&lt;p&gt;you can easily add columns in Supabase's table editor without writing any SQL&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftesny9ri916d82qq5wjk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftesny9ri916d82qq5wjk.png" alt="Image description" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  then, just call the supabase write function in the client, I wrappered the logic with react-query here
&lt;/h2&gt;

&lt;p&gt;`&lt;br&gt;
export const useSaveSubmissionForm = createMutation({&lt;br&gt;
  mutationKey: ['save-submission'],&lt;br&gt;
  mutationFn: async (formValue) =&amp;gt; {&lt;br&gt;
    const { data, error } = await supabase&lt;br&gt;
      .from(TABLE_NAME)&lt;br&gt;
      .insert({&lt;br&gt;
        email: formValue.email,&lt;br&gt;
        app_name: formValue.app_name,&lt;br&gt;
        // tester: formValue.tester,&lt;br&gt;
      })&lt;br&gt;
      .select('*')&lt;br&gt;
      .single()&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (error) {
  throw new Error(error.message);
}

return data as SubmissionFormType;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;},&lt;br&gt;
});&lt;br&gt;
`&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally, we get the info
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpe2oamqoevvuh3twwua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpe2oamqoevvuh3twwua.png" alt="Image description" width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  what's next?
&lt;/h2&gt;

&lt;p&gt;we will let app's author know who has tested his app, and easily jump into the helper's app,make a test back.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>3rd, ensure tester open your app one day</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Fri, 25 Apr 2025 12:32:17 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/3rd-ensure-tester-open-your-app-one-day-1i9n</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/3rd-ensure-tester-open-your-app-one-day-1i9n</guid>
      <description>&lt;p&gt;I have downloaded many Apps to test, but I am not sure if others test me back. or how many testers are testing my app. I need to find a way to ensure that, ideally collect the tester's email, so that I know we are closing test pair.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In my app, I will add an button, if the tester click it, then he will be led to one specific page of AndroidClosingTestPairs, once he jumps to this page, it's test behavior will be submit to server.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;here we use the one technology called "android deep link", you can open a schema link with parameters. while in development, we can test it with this command &lt;code&gt;adb shell am start -W -a android.intent.action.VIEW   -d "ClosingTestPairs://check?appName=TestApp\&amp;amp;email=duri999xxx@gmail.com"   c&lt;br&gt;
om.androidclosingtestpairs.development&lt;/code&gt; to emulator the jump between app.&lt;/p&gt;

&lt;p&gt;Attention !!! the deeplink &lt;strong&gt;should be urlencoded&lt;/strong&gt;, otherwise you won't get all your parameters as expected.&lt;/p&gt;

&lt;p&gt;ideally, we collect tester's info in AndroidClosingTestPairs&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o8wemw8g48phqw3k702.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o8wemw8g48phqw3k702.png" alt="Image description" width="342" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  what's next?
&lt;/h3&gt;

&lt;p&gt;In the next post, we are going to save the tester's submission, so the author know who have test his app, and he will test back in the same way.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Buding AndroidClosingTestPairs</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Fri, 25 Apr 2025 01:19:58 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/buding-androidclosingtestpairs-3e3a</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/buding-androidclosingtestpairs-3e3a</guid>
      <description>&lt;h2&gt;
  
  
  I am building a platform for developers who are looking for testers
&lt;/h2&gt;

&lt;p&gt;Thanks for &lt;a href="https://www.reddit.com/r/AndroidClosedTesting" rel="noopener noreferrer"&gt;this Reddit Channel&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  I’ve been using it to find testers for my Android app, but I’ve run into a few issues:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;​​Time-consuming process​​: I have to sift through dozens of posts and make sure they’ve been updated in the last 3 days (older posts rarely get responses).&lt;/li&gt;
&lt;li&gt;​​Tedious steps​​: For each post, I need to join their Google Group, download the app, test it, take a screenshot, and then leave a comment with the screenshot.&lt;/li&gt;
&lt;li&gt;​​Low engagement​​: Ideally, I’d comment on 12 posts daily (with 12 screenshots), but Reddit might flag me as spam—some comments go unanswered, so I’m not getting enough testers in return.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ​​My solution​​: Build a dedicated platform where:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1. Users submit their app info ​​once​​ (no duplicates).&lt;/li&gt;
&lt;li&gt;2. Testers can easily join without repetitive steps.&lt;/li&gt;
&lt;li&gt;3. App authors can track testers and update post statuses (e.g., "Google-approved") in real time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Do you have any pain points and suggestions?
&lt;/h2&gt;

</description>
    </item>
    <item>
      <title>2nd,Create Tables In Supabase</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Thu, 24 Apr 2025 04:48:01 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/2ndcreate-tables-in-supabase-2ngb</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/2ndcreate-tables-in-supabase-2ngb</guid>
      <description>&lt;h2&gt;
  
  
  create Profile table to save user's general info
&lt;/h2&gt;

&lt;p&gt;as we have setup Google Auth in the last step, we need a table to save user's info&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE
  public.profiles (
    id UUID NOT NULL PRIMARY KEY,
    bio TEXT NULL,
    avatar_url TEXT NULL,
    created_at TIMESTAMP WITH TIME ZONE NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT profiles_id_key UNIQUE (id)
  ) TABLESPACE pg_default;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  And we need an table to save user's submission.
&lt;/h2&gt;

&lt;p&gt;People need to submit their closing test info by these 4 fields&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm8r8jm3ox4ok8rbp6x6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm8r8jm3ox4ok8rbp6x6.png" alt="Image description" width="307" height="278"&gt;&lt;/a&gt;&lt;br&gt;
you can easily add these four fields on Supabase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Attention
&lt;/h3&gt;

&lt;p&gt;before you writing or fetching data into Supabase, don't forget to &lt;strong&gt;set RLS policy&lt;/strong&gt; of your table, normally we set "only authenticated user can read and write"&lt;/p&gt;

</description>
      <category>programming</category>
      <category>database</category>
      <category>sql</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Integrate Google Auth &amp; Supabase to EXPO App</title>
      <dc:creator>bruce D</dc:creator>
      <pubDate>Thu, 24 Apr 2025 04:32:43 +0000</pubDate>
      <link>https://dev.to/bruce_doctor_515422886dae/integrate-google-auth-to-expo-5h5o</link>
      <guid>https://dev.to/bruce_doctor_515422886dae/integrate-google-auth-to-expo-5h5o</guid>
      <description>&lt;h3&gt;
  
  
  1. navigate to &lt;a href="https://console.cloud.google.com/projectselector2/home/dashboard?supportedpurview=project&amp;amp;allowsmanagementprojects=true&amp;amp;authuser=2" rel="noopener noreferrer"&gt;Google cloud dashboard&lt;/a&gt;, (if you have many google accounts logged in on the chrome, you need to toogle the account), add an &lt;strong&gt;New Project&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9445bo5ukf2becfgqm5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9445bo5ukf2becfgqm5f.png" alt="Image description" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create OAuth Client ID
&lt;/h3&gt;

&lt;p&gt;1 Follow on [the official document], create an &lt;strong&gt;Android Type&lt;/strong&gt; Client ID(&lt;a href="https://developers.google.com/workspace/guides/create-credentials?hl=en#oauth-client-id" rel="noopener noreferrer"&gt;https://developers.google.com/workspace/guides/create-credentials?hl=en#oauth-client-id&lt;/a&gt;)&lt;br&gt;
there is one thing you should be attention is:you need to privide a SHA-1 Certificate to fill in the form,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmkik4facl2urro5djnti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmkik4facl2urro5djnti.png" alt="Image description" width="800" height="747"&gt;&lt;/a&gt;,&lt;br&gt;
you can use debug.keystore to generate the figureprint&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb0l321smx6tnjkiexj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb0l321smx6tnjkiexj9.png" alt="Image description" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an Web Client Id, as we are using EXPO/ReactNative, we can't only use the AndriodClient, go to &lt;strong&gt;Dashboard &amp;gt; APIs &amp;amp; Services&lt;/strong&gt; or just go to &lt;a href="https://console.cloud.google.com/apis/credentials?project=androidclosingtestpairs" rel="noopener noreferrer"&gt;this url&lt;/a&gt;, then create the web client like below
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsv6bn0u7gxls0l2jqp1n.png" alt="Image description" width="800" height="403"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  EXPO Google Sign Plugin
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://react-native-google-signin.github.io/docs/setting-up/expo" rel="noopener noreferrer"&gt;install and configure expo plugin&lt;/a&gt;, &lt;strong&gt;make sure you have&lt;br&gt;
done things below&lt;/strong&gt;,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;configurate PLUGIN section in app.config.js 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1132e3505p7ulq0zhd9o.png" alt="Image description" width="800" height="148"&gt;
&lt;/li&gt;
&lt;li&gt;import and call the GoogleSign &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbb5gc0usyqqjajeusrx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbb5gc0usyqqjajeusrx.png" alt="Image description" width="800" height="735"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;then run &lt;code&gt;pnpm android&lt;/code&gt; again to rebuild the app, add an button to call the function we defined,it will work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I am failed
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Check the &lt;strong&gt;SHA-1&lt;/strong&gt; figureprint of &lt;strong&gt;Android Client&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;Package name&lt;/strong&gt; of &lt;strong&gt;Android Client&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Don't forget to configure &lt;strong&gt;webClient&lt;/strong&gt; before call GoogleSignIn&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Enable Supabase's Google Auth Provider
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://supabase.com/dashboard/project/wohdvkujfvxmcitenwey/auth/providers" rel="noopener noreferrer"&gt;go to this link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;scroll and choose Google, then fill into ClientId and Client Scret of &lt;strong&gt;your Google WebClient !!!!&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aj73xzuz43fh6q8e47l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aj73xzuz43fh6q8e47l.png" alt="Image description" width="800" height="988"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/bruce_doctor_515422886dae/2ndcreate-tables-in-supabase-2ngb"&gt;Next, create table in Supabase to save user's info&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>googleauth</category>
      <category>supabase</category>
    </item>
  </channel>
</rss>
