小编mad*_*dim的帖子

如何在firebase中的一个请求中删除多个节点?

我有一个根的两个节点,我想在一个请求中删除它们中的数据.两个子节点具有相同的密钥.我试过这个:

Firebase firebaseRef = new Firebase(<root_path>);

Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put(<path_to_first_node>, key);
childUpdates.put(<path_to_second_node>, key);

listToRemoveRef.updateChildren(childUpdates, null);
Run Code Online (Sandbox Code Playgroud)

但它仅从第一个节点删除了数据

android firebase firebase-realtime-database

11
推荐指数
1
解决办法
1758
查看次数

Firebase 身份验证 - 如何使用他们的电子邮件删除用户帐户?

我可以删除未通过身份验证的用户帐户吗?文档提供了这样一种方式:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.delete()
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "User account deleted.");
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这是删除帐户的唯一方法吗?

android firebase firebase-authentication

5
推荐指数
0
解决办法
5382
查看次数

排队UniquePeriodicWork 的最佳位置是什么?

我想每天将数据库与服务器数据同步一次,将工作排入队列的最佳位置是什么,因此它每天只运行一次?WorkManager 似乎并不关心下一个入队调用是否在重复间隔内。如果我将排队工作放在 Application 类中,并且该工作已完成,那么如果我关闭并打开应用程序,WorkManager 将再次运行它。

这是否意味着我总是必须在调用之前检查工作是否已排队WorkManager.enqueue()

val workInfo = workManager.getWorkInfosForUniqueWork("UNIQUE_WORK_NAME").get()?.getOrNull(0)
if (workInfo?.state == WorkInfo.State.ENQUEUED) {
    // do nothing
    return
}

workManager.enqueueUniquePeriodicWork(
                "UNIQUE_WORK_NAME",
                ExistingPeriodicWorkPolicy.KEEP,
                PeriodicWorkRequestBuilder<SyncDbWorker>(
                        1,
                        TimeUnit.DAYS
                )
                .setConstraints(constraints)
                .build())
Run Code Online (Sandbox Code Playgroud)

更新:

我忘记提及的一件事是,在我的 Worker 内部我总是返回Result.success()。因此,如果工作由于某种原因失败,WorkManager 将在下一次迭代中重试。

android android-jetpack android-workmanager

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

如何分析混淆的第 3 方库代码的泄漏痕迹

我发现了内存泄漏(使用 LeakCanary),但泄漏跟踪中的代码被混淆了。我对代码混淆没有太多经验,我想知道是否有办法对其进行反混淆,或者是否可以禁用第三个库代码的代码混淆?

我使用的第三个库代码是yandex-ads-sdk。泄漏痕迹:

2020-10-20 12:03:00.931 D/LeakCanary: ?
????
? GC Root: System class
?
?? com.yandex.metrica.impl.ob.dr class
?    Leaking: NO (a class is never leaking)
?    ? static dr.a
?                ~
?? com.yandex.metrica.impl.ob.dr instance
?    Leaking: UNKNOWN
?    Retaining 125 bytes in 5 objects
?    f instance of com.example.Application
?    ? dr.h
?         ~
?? com.yandex.metrica.impl.ob.bj instance
?    Leaking: UNKNOWN
?    Retaining 1538 bytes in 60 objects
?    q instance of com.example.MainActivity with mDestroyed = false
?    a …
Run Code Online (Sandbox Code Playgroud)

obfuscation android yandex-metrika leakcanary

2
推荐指数
1
解决办法
292
查看次数

拍照总是在onActivityResult(..)中返回RESULT_CANCELED(0)

我尝试使用firebase存储示例应用程序构建存储应用程序,当我拍照时,我总是在onActivityResult(..)中得到RESUL_CANCELED.这是代码:

@AfterPermissionGranted(RC_STORAGE_PERMS)
private void launchCamera() {
    Log.d(LOG_TAG, "launchCamera");

    // Check that we have permission to read images from external storage.
    String perm = Manifest.permission.WRITE_EXTERNAL_STORAGE;
    if (!EasyPermissions.hasPermissions(this, perm)) {
        EasyPermissions.requestPermissions(this, getString(R.string.rationale_storage),
                RC_STORAGE_PERMS, perm);
        return;
    }

    // Choose file storage location, must be listed in res/xml/file_paths.xml
    File externalDir = Environment.getExternalStorageDirectory();
    File file = new File(externalDir, "photos/" + UUID.randomUUID().toString() + ".jpg");

    // Create content:// URI for file, required since Android N
    // See: https://developer.android.com/reference/android/support/v4/content/FileProvider.html
    mFileUri = FileProvider.getUriForFile(this,
           "com.google.firebase.quickstart.firebasestorage.fileprovider", file);

    // Create …
Run Code Online (Sandbox Code Playgroud)

android android-camera firebase-storage

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