gpt4 book ai didi

java - 无法调用方法 FirebaseApp.delete()

转载 作者:行者123 更新时间:2023-12-02 01:24:32 24 4
gpt4 key购买 nike

我正在尝试删除 secondaryApp 代码,因为我想阻止函数 firebaseAuth.createUserWithEmailAndPassword(email,password) 在用户创建后自动登录

我引用了下面的代码:

FirebaseOptions.Builder fbo = new FirebaseOptions.Builder();
fbo.setApiKey("YOUR_WEB_API_KEY");
fbo.setDatabaseUrl("https://[YOUR_PROJECT_ID].firebaseio.com/");
fbo.setProjectId("YOUR_PROJECT_ID");
fbo.setApplicationId("YOUR_APP_ID"); //Tested, App Id is required.
FirebaseOptions firebaseOptions = fbo.build();
final FirebaseApp secondaryAuth = FirebaseApp.initializeApp([JAVA_CLASS_NAME].this, firebaseOptions, "secondary_db_auth");

它有效,但是当我尝试调用该方法时

secondaryAuth.delete()

它返回一个错误,指出该方法无法调用,如下图所示。

Error image

我已经检查了 firebase [FirebaseApp.delete()][2] 的文档,并期望它能够工作,但事实并非如此。其他一切都正常,只是 delete() 不起作用

https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/FirebaseApp

整个代码实现如下:

private void CreateAccount() {
String name = username.getText().toString();
String phone = phoneNumber.getText().toString();
String email = emailAddress.getText().toString();
String password = passwordTxt.getText().toString();
String confirmPassword = confirmPasswordTxt.getText().toString();
String points = pointsTransfer.getText().toString();
final DatabaseReference RootRef;
final FirebaseAuth firebaseAuth;

FirebaseOptions.Builder fbo = new FirebaseOptions.Builder();
fbo.setApiKey("YOUR_WEB_API_KEY");
fbo.setDatabaseUrl("https://[YOUR_PROJECT_ID].firebaseio.com/");
fbo.setProjectId("YOUR_PROJECT_ID");
fbo.setApplicationId("YOUR_APP_ID"); //Tested, App Id is required.
FirebaseOptions firebaseOptions = fbo.build();
final FirebaseApp secondaryAuth = FirebaseApp.initializeApp([JAVA_CLASS_NAME].this, firebaseOptions, "secondary_db_auth");

RootRef = FirebaseDatabase.getInstance().getReference().child("Users");
firebaseAuth = FirebaseAuth.getInstance(secondaryAuth);


if(TextUtils.isEmpty(name)){
Toast.makeText(this, "Please insert your user name.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(phone)){
Toast.makeText(this, "Please insert your phone number.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(email)){
Toast.makeText(this, "Please insert your phone number.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(password)){
Toast.makeText(this, "Please insert your password.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(confirmPassword)){
Toast.makeText(this, "Please insert your password again.", Toast.LENGTH_SHORT).show();
}
else if(!password.equals(confirmPassword)){
Toast.makeText(this, "Password does not match.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(points)){
Toast.makeText(this, "You need to send some points", Toast.LENGTH_SHORT).show();
}
else if(Float.parseFloat(currentUser.getPoints())<Float.parseFloat(points)){
Toast.makeText(this, "You do not have sufficient points.", Toast.LENGTH_SHORT).show();
}
else{
loadingBar.setTitle("Create Account");
loadingBar.setMessage("Please wait, we are checking the credentials.");
loadingBar.setCanceledOnTouchOutside(false);
loadingBar.show();

ValidateAccount(name, phone,email, password, confirmPassword,points, RootRef, firebaseAuth);
secondaryAuth.delete();
}
}

最佳答案

据我在reference documentation中看到的,没有方法FirebaseApp.delete()

创建 FirebaseApp 实例后,它将在该应用的生命周期内一直存在。鉴于 FirebaseApp 实例非常轻量级,因此这通常不会成为问题。

但他们当然可以保留更昂贵的资源,例如服务实例。如果您的应用程序担心这一点,请务必隔离名称应用程序实例及其服务的使用,以便在不再需要它们时可以对其进行垃圾回收。

<小时/>

听起来您想检测是否已经初始化了 FirebaseApp,您可以通过调用 getApps() 来完成此操作。 ,循环遍历结果并检查 name每个。或者您可以调用getInstance("secondary_db_auth")并处理当应用实例尚不存在时抛出的异常。

关于java - 无法调用方法 FirebaseApp.delete(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57142589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com