You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Firebase和Python向手机号码发送短信?

使用Firebase + Python 实现短信发送的实操方案

前置说明

Firebase 本身没有提供通用的自定义业务短信发送能力,你可以根据实际使用场景选择以下两种适配方案:

方案1:触发Firebase Auth 手机号验证短信

该方案仅适用于用户手机号归属验证场景,短信内容为Firebase固定验证模板,无法自定义内容。

操作步骤

  • 首先安装Firebase Admin Python SDK:
    pip install firebase-admin
  • 前往Firebase控制台「项目设置」-「服务账号」页面,下载服务账号密钥JSON文件
  • 编写调用代码示例:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import auth

# 初始化Firebase服务
cred = credentials.Certificate("你下载的服务账号密钥文件路径.json")
firebase_admin.initialize_app(cred)

# 触发验证短信发送
phone_number = "+8613xxxxxxxxx" # 手机号必须携带对应国家/地区的国际区号
verify_link = auth.generate_sign_in_with_phone_number_link(
    phone_number,
    "https://你的项目验证完成后跳转地址"
)

注意:该方案发送的短信模板由Firebase统一规定,仅可修改验证链接域名,无法调整短信正文内容

方案2:结合Firebase Cloud Functions 实现自定义短信发送

如果需要发送自定义内容的业务短信(比如通知、验证码、营销短信等),可以通过Firebase Cloud Functions对接第三方短信服务商的API实现,Python环境适配步骤如下:

操作步骤

  • 进入Firebase控制台开通Cloud Functions服务,运行环境选择Python 3.10/3.11版本
  • 在Cloud Functions的依赖配置文件requirements.txt中添加你选用的短信服务商Python SDK依赖
  • 编写云函数逻辑,支持HTTP触发、Firestore数据变动触发、定时触发等多种触发方式,示例代码如下(以国内腾讯云短信为例):
import tencentcloud.sms.v20210111.models as sms_models
from tencentcloud.sms.v20210111.sms_client import SmsClient
from tencentcloud.common.credential import Credential

def send_sms(request):
    # 解析传入的请求参数
    req_params = request.get_json()
    target_phone = req_params.get("phone")
    template_params = req_params.get("template_params")

    # 初始化短信客户端(密钥等敏感信息建议放在Cloud Functions的环境变量中,不要硬编码)
    sms_cred = Credential("你的第三方短信服务商SecretId", "你的第三方短信服务商SecretKey")
    sms_client = SmsClient(sms_cred, "服务商对应地区节点编码")

    # 构造短信发送请求
    req = sms_models.SendSmsRequest()
    req.SmsSdkAppId = "你申请的短信应用ID"
    req.SignName = "你提前审核通过的短信签名"
    req.TemplateId = "你提前审核通过的短信模板ID"
    req.PhoneNumberSet = [target_phone]
    req.TemplateParamSet = template_params

    # 执行发送
    resp = sms_client.SendSms(req)
    return {"status": "success", "response": resp.to_json_string()}
  • 云函数部署完成后,你可以在本地Python项目中通过调用云函数的HTTP触发地址,即可实现自定义短信发送

通用注意事项

  • 所有短信发送操作必须符合当地通信管理法规要求,短信签名和模板需要提前提交服务商审核通过后才可使用
  • 所有涉及到的服务密钥、敏感配置不要写在客户端代码中,统一放在服务端/云侧的环境变量中存储
  • 发送手机号必须携带国际区号,否则接口会直接报错

内容的提问来源于stack exchange,提问作者Rajesh Raskoti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:06:01