Firebase - 检查电子邮件是否已注册的最有效方法是什么?

Emi*_*ily 1 firebase firebase-authentication firebase-realtime-database

我正在尝试编写一个函数,在继续进行注册过程之前(如果电子邮件未注册),将检查是否在我的Firebase应用程序(使用Javascript/Web)中注册了电子邮件.

我创建了一个名为" active_emails我想填充注册电子邮件(如数组)" 的节点.我打算查看此列表中的电子邮件,如果它不存在,那么我将允许用户继续注册过程.

我在这里的答案中看到:在Firebase存储类似数组的值的正确方法 Firebase在数组中创建了键.所以正常的Javascript数组检查将无法正常工作.我理解上面的答案是如何工作的,但我想知道,因为我基本上正在查看注册的Firebase用户的电子邮件,还有另一种方法来进行此检查吗?

我是否正确认为上述答案需要Firebase进行编译,然后将一组电子邮件发送回用户客户端?这似乎可能会影响性能(如果存在数十万或数百万封电子邮件),它是否会将所有用户电子邮件暴露给客户端?有没有其他方法来检查用户是否注册,可能是尝试注册然后捕获重复的电子邮件错误(虽然这听起来像一个混乱的方式来解决这个问题).

最佳答案如何:如何查看电子邮件是否已在Firebase简单登录中注册?建议使用fetchProvidersForEmail作为一种检查电子邮件是否已注册的方式,但答案是针对Android的,我不知道是否可以使用Javascript/Web做这样的事情.

我试图在这里集成这个方法:

    function checkEmail(){
        firebase.database().ref().fetchProvidersForEmail("emailaddress@gmail.com").once("value", function(snapshot) {
        console.log(snapshot);
    }); 
}   
Run Code Online (Sandbox Code Playgroud)

但它显示错误:firebase.database(...).ref(...).fetchProvidersForEmail is not a function.有没有人对实现这项检查的最佳方法有任何想法?

先感谢您!

boj*_*eil 6

此方法仅用于auth: firebase.auth().fetchProvidersForEmail("emailaddress@gmail.com")