我是Firebase的新手,我有很多问题,因为所有的任务都是异步调用的。
public static void printProviders(String email) {
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.fetchProvidersForEmail(email).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
@Override
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
Log.d(TAG, "We have " + task.getResult().getProviders().size() + " results.");
for (int i = 0; i < task.getResult().getProviders().size(); i++) {
Log.d(TAG, "Provider " + (i+1) + ": " + task.getResult().getProviders().get(i));
}
}
}
);
}
public static boolean emailIsRegistered(String email) {
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.fetchProvidersForEmail(email).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
@Override
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
if (task.getResult().getProviders().size() > 0) {
return true;
}
return false;
}
});
}
谢谢!
当您调用FetchProvidersForeMail
时,该信息在应用程序的APK中不可用。Firebase客户机必须呼叫服务器才能获得此信息。
考虑到internet的性质,这意味着在从这些服务器返回结果之前,将需要一段未知的时间。
在此期间,客户端有几个选择:
if (emailIsRegistered(email)) {
signInUser(email);
}
else {
signUpUser(email);
}
public static boolean emailIsRegistered(String email) {
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.fetchProvidersForEmail(email).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
@Override
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
if (task.getResult().getProviders().size() > 0) {
signUserIn(email);
}
signUserUp(email);
}
});
学习处理异步调用既困难又重要。我不确定这是否是我对概念的最好解释。所以我将包括一些之前的解释(来自我和其他人):
问题内容: 我很好奇所有的JavaScript回调是异步的,还是仅在某些情况下才是异步的。另外,我确定是什么使浏览器和Node.js的javascript代码异步(或使用异步javascript的方式)有所不同,所以我想知道在每种情况下什么才是真正的异步javascript。 我的印象是,在以下情况下,我实际上并没有编写异步代码。 但是,例如,我知道jQuery的AJAX函数是真正异步的(没有考虑
然而,在我下面的代码中,我希望在这两个示例中都花费相同的15秒(每个任务5秒),如本文所述。然而,第二个示例只需要5秒,同时运行所有3个示例也需要5秒来完成第二个示例。原来的文章花了5秒,但我把它改成了1秒的延迟,让它更明显。 有没有人能解释一下这是怎么回事,为什么它看起来像线程一样运行?
问题 import a from 'module-a'; import b from 'module-b'; console.log(a); console.log(b); 这几行代码是同步执行的,为什么却说 ESM 是异步的。 谁说ESM是异步的? https://nodejs.org/api/packages.html 这里说的 其他问题 看到几篇文章,大都是说 script标签的加载是异步的
我刚刚发现,在react函数都是异步的,或者在调用它的函数完成后调用。 现在这两样东西很难消化 在博客中,函数是在函数内部调用的,但是触发函数的原因并不是被调用函数所知道的。 他们为什么要让异步,因为JS是单线程语言,而且这个setState不是WebAPI或服务器调用,所以只能在JS的线程上完成。他们这样做是为了使重新呈现不会停止所有事件侦听器和其他东西,还是有其他设计问题。
官方: http://developer.android.com/reference/android/os/asynctask.html onProgressUpdate(Progress...),在调用publishProgress(Progress...)后在UI线程上调用.执行的时间未定义。此方法用于在后台计算仍在执行时,在用户界面中显示任何形式的进度。例如,它可以用于动画进度条或在文本字段
我有java背景,对Lambda所需的Javascript约定有点陌生。 我有一个lambda函数,它可以按照特定的顺序执行几个AWS任务,具体取决于前一个任务的结果。 考虑到每个任务都异步报告其结果,我想知道是否正确的方法可以确保它们都按正确的顺序发生,并且一个操作的结果可供下一个函数调用。 似乎我必须在前一个函数的回调中包含每个函数,但似乎这将进行某种深度嵌套,并想知道这是否是正确的方法。 例