You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

启用CustomSMSSender以使第三方供应商发送短信验证代码。

  1. 在项目的build.gradle文件中导入CustomSMSSender的依赖项

dependencies { ... implementation 'com.google.firebase:firebase-auth:11.8.0' implementation 'com.google.firebase:firebase-core:11.8.0' implementation 'com.google.firebase:firebase-messaging:11.8.0' implementation 'com.google.firebase:firebase-config:11.8.0'

implementation 'com.github.mukeshsolanki:android-otpview-pinview:1.3.2'
implementation 'com.github.bumptech.glide:glide:3.7.0'

}

  1. 创建一个名为CustomSMSSender的类,以实现SMS验证

public class CustomSMSSender extends FirebaseAuthSettings { private static final String TAG = "CustomSMSSender";

public CustomSMSSender(FirebaseApp app) {
    super(app);
}

public Task<AuthResult> signInWithPhoneAuthCredential(final PhoneAuthCredential credential) {
    final AuthResult[] authResult = {null};
    final String[] exceptionMsg = {null};
    FirebaseAuth.getInstance().signInWithCredential(credential)
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        authResult[0] = task.getResult();
                    } else {
                        exceptionMsg[0] = task.getException().getMessage();
                    }
                }
            });
    if (authResult[0] != null) {
        return Tasks.forResult(authResult[0]);
    } else if (exceptionMsg[0] != null) {
        return Tasks.forException(new Exception(exceptionMsg[0]));
    } else {
        return Tasks.forCanceled();
    }
}

public String getVerificationCode(final String phoneNumber) throws Exception {
    final String[] verificationCode = {null};
    final PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
        @Override
        public void onVerificationCompleted(PhoneAuthCredential credential) {
            Log.d(TAG, "onVerificationCompleted:" + credential);
        }

        @Override
        public void onVerificationFailed(FirebaseException e) {
            Log.w(TAG, "onVerificationFailed", e);
        }

        @Override
        public void onCodeSent(String verificationId,
                               PhoneAuthProvider.ForceResendingToken token) {
            Log.d(TAG, "onCodeSent:" + verificationId);
            verificationCode[0] = verificationId;
        }
    };
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phoneNumber,
            60,
            TimeUnit.SECONDS,
            getActivity(),
            mCallbacks);
    long startTime = System.currentTimeMillis();
    while (verificationCode[0] == null && (System.currentTimeMillis() - startTime) < 60000) {
        Thread.sleep(1000);
    }
    if (verificationCode[0] == null) {
        throw new Exception("Failed to get verification code");
    }
    return verificationCode[0];
}

}

  1. 应用程序中使用CustomSMSSender

CustomSMSSender customSMSSender = new CustomSMSSender(FirebaseApp.getInstance());

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

实战:超低延时直播技术的落地实践

> 据中国互联网络信息中心发布的《中国互联网络发展状况统计报告》显示,截止到 2022 年 6 月我国网络直播用户规模达到了 7.16 亿,占网民整体的 68.1%。最主要原因是 2020 年度疫情期间导致居家办公和休闲娱乐的人数... 发送到 CDN 服务端(图中的蓝色箭头);- 推流过程中,VolcEngineRTC 内部的网络传输引擎,对网络状态进行追踪,预估出网络可用带宽,并进行编码器带宽分配,再通过 VolcEngineRTC 私有接口回调到 RTM 推流引擎,最后再反...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

启用CustomSMSSender以使第三方供应商发送短信验证代码。 -优选内容

学习 SSL/TLS ,这一篇就够了
用于认证网站的身份并启用加密连接。SSL 代表安全套接字层,这是一个安全协议,可在 Web 服务器和 Web 浏览器之间创建加密连接。关于 CA 证书和 SSL 证书之间的关系,其实某种意义上,大家会将其认为等价,不过稍有不同:CA 是证书颁发机构,由 CA 机构颁发的证书都可以成为 CA 证书,SSL 证书只是 CA 机构颁发证书的其中一种。2. SSL 证书分类SSL 证书根据验证级别主要分为三种类型:1. **扩展验证证书 (EV SSL):** 这是等级最...
控制台总览
您可以使用标签对列表中的域名进行管理。您还可以对每个域名进行启用、停用、删除和复制操作。 查看域名配置:查看某个域名的详细配置,包括域名的基础配置、回源配置、HTTPS 配置、缓存配置、访问控制配置以及内容... 流量分布:展示按区域和供应商统计的流量,带宽和请求数。 IP 分析:展示全球用户 IP 的地理分布以及数量趋势。 对于流量、带宽、请求数和用户请求状态码,您可以使用多个过滤选项对查询结果进行过滤。这些过滤选项...
什么是云原生及 Go 语言在原生时代的优势|社区征文
从云供应商那里租用 VM 或物理服务器,节省人力和维护的成本。这种托管的基础架构还为客户提供了可使用的 HTTP 应用程序编程接口(API),用于根据需求创建和管理基础架构。值得注意的是,在云中运行你的基础架构并不... 它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。 Docker 容器镜像是一个轻量级的、独立的、可执行的软件包,包括运行应用程序所需的一切:代码、运行时、系统工具、系统库和设...
HPC-基于NCCL通信库的多机RDMA网络性能测试
OpenMPI在系统和软件供应商、应用开发者和计算机科学研究人员中有广泛应用。 NCCL NCCL(Nvidia Collective multi-GPU Communication Library,读作 "Nickel")是一个提供GPU间通信基元的库,它具有拓扑感知能力,可以... 推荐配置为:NCCL_IB_GID_INDEX=3 NCCL_IB_DISABLE 是否关闭RDMA通信 设置成1来启用TCP通信(非RDMA),推荐配置为:NCCL_IB_DISABLE=0 NCCL_DEBUG NCCL日志级别 推荐设置为:NCCL_DEBUG=INFO NCCL_IB_TIMEOUT 网...

启用CustomSMSSender以使第三方供应商发送短信验证代码。 -相关内容

Android SDK 集成

trackBlackList = [] // 6.14.3 新功能 // 关闭接口/类自动跟踪功能 // 使用场景举例:当您使用 lite 包时,但又需要 trackBlackList 来移除部分采集代码时,可以使用该功能 disableAutoTrack = fa... 离线包依赖混淆配置:-keep class com.bytedance.applog.picker.DomSender { public *; }-keep class com.bytedance.applog.tracker.WebViewUtil { public *; }-keep class com.bytedance.applog.metasec.AppLogSec...

实战:超低延时直播技术的落地实践

> 据中国互联网络信息中心发布的《中国互联网络发展状况统计报告》显示,截止到 2022 年 6 月我国网络直播用户规模达到了 7.16 亿,占网民整体的 68.1%。最主要原因是 2020 年度疫情期间导致居家办公和休闲娱乐的人数... 发送到 CDN 服务端(图中的蓝色箭头);- 推流过程中,VolcEngineRTC 内部的网络传输引擎,对网络状态进行追踪,预估出网络可用带宽,并进行编码器带宽分配,再通过 VolcEngineRTC 私有接口回调到 RTM 推流引擎,最后再反...

Java SDK

以使用批量方式。 简单 高 高,支持批量上报。 如果参考 “最佳实践”-->"查看上报时延"章节内容来查看上报的时延。SDK>=1.5.6 版本,支持批量。 FILE 不推荐 复杂 很高 低,写文件之后还需要使用logagent... 可以开启批量上报的方式。 yaml [batch] 使用 batch 的方式datarangers.sdk.sendBatch=true 批量的数量datarangers.sdk.batchSize=20datarangers.sdk.waitTimeMs=100Host: datarangers.sdk.headers为http请求中he...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Java SDK

以使用批量方式。 简单 高 高,支持批量上报。 如果参考 “最佳实践”-->"查看上报时延"章节内容来查看上报的时延。SDK>=1.5.6 版本,支持批量。 FILE 不推荐 复杂 很高 低,写文件之后还需要使用logagent... 可以开启批量上报的方式。 yaml [batch] 使用 batch 的方式datarangers.sdk.sendBatch=true 批量的数量datarangers.sdk.batchSize=20datarangers.sdk.waitTimeMs=100Host: datarangers.sdk.headers为http请求中he...

Java SDK

以使用批量方式。 简单 高 高,支持批量上报。 如果参考 “最佳实践”-->"查看上报时延"章节内容来查看上报的时延。SDK>=1.5.6 版本,支持批量。 FILE 不推荐 复杂 很高 低,写文件之后还需要使用logagent... 可以开启批量上报的方式。 yaml [batch] 使用 batch 的方式datarangers.sdk.sendBatch=true 批量的数量datarangers.sdk.batchSize=20datarangers.sdk.waitTimeMs=100Host: datarangers.sdk.headers为http请求中he...

Android SDK集成

一、简介 GMP Push SDK 是 GMP 提供端触达能力的 SDK。目前支持的通道有以下几种: 厂商级通道: xiaomi、huawei、meizu、vivo、oppo 第三方通道: umeng(友盟) 二、专业术语介绍 术语 解释 推送通道 通道是指推送的... 因此需要接入方自行向厂商提供自己的 app 信息并开通对应的厂商 push 通道。应用名称填写便于标识的名称即可,pushAppId 需要唯一,需要注意的是 pushAppId 需要和后续接入配置中使用的 aid 需要一致然后选中新建的应...

数据输出

背景信息 应用场景如果您需要将Finder-SDK采集的埋点数据实时推送到目标地址(例如您的业务数仓),数据输出模块可为您实现。 使用限制细分项目 限制说明 支持的环境 私有化环境:4.1.0版本(含)后开始支持。 SaaS环... 您需要添加以下来源ip的白名单: 106.38.226.0/24116.132.239.0/24111.63.61.128/25111.63.211.128/25 在私有化环境中,如果接收服务是在外网,需要配置私有化机器的出口ip。 Headers 您需要根据接收端对数据发送的...

数据输出

背景信息 应用场景如果您需要将Finder-SDK采集的埋点数据实时推送到目标地址(例如您的业务数仓),数据输出模块可为您实现。 使用限制细分项目 限制说明 支持的环境 私有化环境:4.1.0版本(含)后开始支持。 SaaS环... 您需要添加以下来源ip的白名单: 106.38.226.0/24116.132.239.0/24111.63.61.128/25111.63.211.128/25 在私有化环境中,如果接收服务是在外网,需要配置私有化机器的出口ip。 Headers 您需要根据接收端对数据发送的...

数据输出

背景信息 应用场景如果您需要将Finder-SDK采集的埋点数据实时推送到目标地址(例如您的业务数仓),数据输出模块可为您实现。 使用限制细分项目 限制说明 支持的环境 私有化环境:4.1.0版本(含)后开始支持。 SaaS环... 您需要添加以下来源ip的白名单: 106.38.226.0/24116.132.239.0/24111.63.61.128/25111.63.211.128/25 在私有化环境中,如果接收服务是在外网,需要配置私有化机器的出口ip。 Headers 您需要根据接收端对数据发送的...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询