NodeJS 我可以在服务器端使用firebase电话号码认证(firebase js或firebase-admin)吗?

ev7lccsx  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(107)

我总是在firebase js和firebase-admin之间选择。我希望让端点执行电话号码身份验证(一个用于发送OTP,另一个用于验证,如果验证成功,则进行一些计算)。通常在服务器端,我应该使用firebase-admin,但它没有提供一个简单的方法作为firebase js(在客户端)来执行。我的问题是,我是否可以在我的nodejs服务器API上使用firebase js来执行这个任务?

/// Very simple way on the client side

import { getAuth, signInWithPhoneNumber } from "firebase/auth";

const phoneNumber = getPhoneNumberFromUserInput();
const appVerifier = window.recaptchaVerifier;

const auth = getAuth();
await signInWithPhoneNumber(auth, phoneNumber, appVerifier);
ntjbwcob

ntjbwcob1#

好的,你可以使用这两个SDK,但每个都在各自的一边。AdminSDK应始终用于NodeJS服务器和客户端的FirebaseJS。
在你的例子中,由于你使用的是电话身份验证,我假设你正在编写一个ReactNative应用程序,所以你应该使用firebase RN phone auth
如果您需要验证您的用户并发送SMS代码来验证此身份验证,您可以遵循本节文档,因为它非常容易理解。
但是如果你想在你的服务器上通过电话号码来检索你的用户数据,你需要使用firebase adminsdk。你可以在这里看看:

getAuth()
  .getUserByPhoneNumber(phoneNumber)
  .then((userRecord) => {
    // See the UserRecord reference doc for the contents of userRecord.
    console.log(`Successfully fetched user data:  ${userRecord.toJSON()}`);
  })
  .catch((error) => {
    console.log('Error fetching user data:', error);
  });

希望对你有帮助:D

相关问题