相关疑难解决方法(0)

从Firebase中删除特定用户

有没有办法从firebase获取特定用户帐户然后将其删除?

例如:

// I need a means of getting a specific auth user.
var user = firebase.auth().getUser(uid);
// Note the getUser function is not an actual function.
Run Code Online (Sandbox Code Playgroud)

之后,我想删除该用户及其他数据:

// This works
user.delete().then(function() {
   // User deleted.
   var ref = firebase.database().ref(
      "users/".concat(user.uid, "/")
   );
   ref.remove();
});
Run Code Online (Sandbox Code Playgroud)

Firebase文档指出,如果用户当前已登录,则可以将其删除:

firebase.auth().currentUser.delete()
Run Code Online (Sandbox Code Playgroud)

我的目标是允许登录管理员用户从系统中删除其他用户.

javascript firebase firebase-authentication

14
推荐指数
3
解决办法
2万
查看次数

Identity Platform 和使用 Identity Platform 进行 Firebase 身份验证有什么区别

Firebase 宣布了一项名为 Firebase Authentication with Identity Platform 的新可选升级,但新功能已存在于 GCP Identity Platform 上。

正如这里的文档中提到的

Identity Platform 充当带有 Identity Platform 的 Firebase 身份验证的后端,并且提供的功能是相同的。

我想知道:

  • 新升级发布后发生了哪些变化,我们可以如何从中受益?
  • 我们现在是否应该选择仅使用 Firebase Authentication with Identity Platform 和 GCP Identity Platform 之一?
  • 如果我想从 GCP Identity Platform 迁移到 Firebase Authentication with Identity Platform,应该实施哪些更改?

firebase google-cloud-platform firebase-authentication google-identity

12
推荐指数
2
解决办法
4146
查看次数

如何在React Native中限制google登录我公司的电子邮件域名(@ company.com)?

防止用户使用不以@ mycompany.com结尾的电子邮件地址通过Firebase/Google身份验证登录我们的内部应用程序的最佳方法是什么?

目标

  • 阻止用户使用错误的电子邮件登录该应用
  • 获取用户的公司电子邮件地址并将其用于其他地方的身份验证(即从内部网站提取数据)

约束

  • 我使用的是react-native init,因为我必须使用我们公司的原生SDK模块实现
  • 最好使用Firebase的解决方案,因为我们已经将其与所述原生SDK模块一起用于FCM /推送通知.

研究结果

  • 我看到react-native-google-signin有一个"hostedDomain"选项,但它似乎没有做任何事情.我不确定如何使用它,并且没有使用它的文档或好例子.有它功能请求这里,但是这就是我能找到.
  • 我看到有一个类似的repo,react-native-google-sign-in,但它不提供有关此主题的更多信息.
  • 我在某处读到我可能认为这一切都错了,身份验证不能限制电子邮件地址(?),但我可以限制谁可以使用所述电子邮件地址访问信息.这对我没有帮助,因为我们现在没有使用Firebase的数据库.我需要一种方法来指导用户使用他们的公司电子邮件登录.
  • 这个人似乎有类似的问题,并找到了护照的解决方案,但我不知道如何将此应用于我的用例.

建立

  • IntelliJ Ultimate 2017.2.2
  • React Native 0.47.1(使用react-native init,而不是CRNA或expo,因为我需要与本机SDK模块集成)
  • 来自Firebase的google-services.json存在于android/app文件夹中

Android安装程序

package.json依赖项

"dependencies": {
    "create-react-class": "^15.6.0", /* Ignore this */
    "firebase": "^4.2.0",
    "react": "16.0.0-alpha.12",
    "react-native": "0.47.1",
    "react-native-app-intro": "^1.1.5",
    "react-native-google-signin": "^0.11.0",
    "react-native-linear-gradient": "^2.2.0",
    "react-navigation": "^1.0.0-beta.12"
}
Run Code Online (Sandbox Code Playgroud)

安卓/ settings.gradle

rootProject.name = '[My Project Name]'
include ':react-native-google-signin'
project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-signin/android')
include ':react-native-linear-gradient'
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')

include ':app', ':[Internal Android SDK]'
Run Code Online (Sandbox Code Playgroud)

安卓/的build.gradle …

email android google-authentication react-native firebase-authentication

8
推荐指数
1
解决办法
2229
查看次数

如果用户存在,则仅使用 Google 身份验证提供程序进行身份验证

我正在使用 Firebase 在我们的应用程序中使用GoogleAuthProvider. 但是,如果新用户还不是经过身份验证的用户,我不希望他们登录。

如果用户存在,则将其登录并console.log('user ' + user.email + ' does exist!');

但是,如果用户不存在。然后不允许身份验证和console.log('user ' + user.email + ' does not exist!')

var googleProvider = new firebase.auth.GoogleAuthProvider();
export const doSignInWithGoogle = () => auth.signInWithPopup(googleProvider);

googleLogin = () => {
    auth
      .doSignInWithGoogle()
      .then(result => {
        var user = result.user;
        const userRef = db.collection('users').doc(user.uid);
        userRef.get().then(docSnapshot => {
          if (docSnapshot.exists) {
            userRef.onSnapshot(() => {
              console.log('user ' + user.email + ' does exist!');
            });
          } else …
Run Code Online (Sandbox Code Playgroud)

javascript firebase reactjs firebase-authentication google-cloud-firestore

8
推荐指数
1
解决办法
3127
查看次数

防止 firebase 用户删除自己

如果我打开一个安装了 firebase 的网站,并在用户登录后在浏览器控制台中执行此 firebase.auth().currentUser.delete() ,则当前用户将被删除。如何防止用户调用删除函数。有没有办法禁用这个?

firebase firebase-authentication

5
推荐指数
1
解决办法
1213
查看次数

Firebase 电子邮件/密码身份验证 - 如何要求电子邮件验证?

每当我在 Firebase 中使用电子邮件/密码身份验证提供程序时,该提供程序都会在成功注册后发送不记名令牌,即使emailVerifiedfalse. 有没有一种现成的方法可以将电子邮件/密码身份验证提供商配置为在用户验证其电子邮件地址之前不发送不记名令牌(并返回 403 错误)?

请注意,我知道如何通过 、 、 、createUserWithEmailAndPasswordfromsignInWithEmailAndPassword方法signOut使用sendEmailVerificationfirebase v9.x 创建用户、登录用户、发送验证电子邮件等firebase/auth。我只是问是否有一种方法可以设置提供程序的行为,而不必为此编写我自己的处理程序函数。我希望它的行为就像 Cognito 在需要电子邮件验证时所做的那样。

firebase firebase-authentication

5
推荐指数
1
解决办法
2376
查看次数

如何在firebase中分隔用户角色?

如何在firebase android app中添加用户角色身份验证?从我看来,firebase只有电子邮件和密码验证.我想开发一个具有2个以上用户角色的Android应用程序.例如,如果普通会员登录,他将转到normal_memberActivity,如果他是高级会员,他将转到premium_memberActivity.如何在firebase中添加角色?无法像我一样找到类似的问题.

通常情况下,我会这样做:

String role = intent.getStringExtra("role");

if (role.equals("admin")){
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.content_frame, new AdminHomeFragment()).commit();
}else{
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.content_frame, new NormalFragment()).commit();
}
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication

4
推荐指数
2
解决办法
4065
查看次数