小编kdb*_*lue的帖子

如何在for循环内同步执行firebase功能?

我正在从firebasefor循环中的数据库中检索数据,但问题是firebase函数不是同步执行的,我知道firebase函数是异步的.那有什么解决方案吗?

代码: -

registrationReference.child(userId).child("generated_links").addListenerForSingleValueEvent(new ValueEventListener()
        {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                peopleModelList.clear();

                for(DataSnapshot snapshot : dataSnapshot.getChildren())
                {
                    peopleModel = new PeopleModel();

                    peopleHashMap =(HashMap)snapshot.getValue();

                    peopleModel.setChatWith((String)peopleHashMap.get("chatWith"));
                    peopleModel.setNickname((String)peopleHashMap.get("nickname"));
                    peopleModel.setChatRoom(snapshot.getKey());

                    Log.d("kkkk","1st");

                    if(peopleModel.getChatWith()!=null && !("".equals(peopleModel.getChatWith())))
                    {
                        registrationReference.child(peopleModel.getChatWith()).addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                peopleModel.setRefresh_token((String)dataSnapshot.child("refresh_token").getValue());
                                peopleModelList.add(peopleModel);
                                Log.d("kkkk","2nd");
                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
                    }
                    Log.d("kkkk","3rd");

                }
                iCallBackPeople.peopleAct(peopleModelList);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
Run Code Online (Sandbox Code Playgroud)

输出: -

1st
3rd
2nd
Run Code Online (Sandbox Code Playgroud)

但我想要这样的输出

1st
2nd …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

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

Jetpack Compose Navigation - 将本地文件位置作为字符串传递

我试图将音频文件位置(/storage/emulated/0/Android/media/...)作为字符串从第一个屏幕传递home_screen到第二个屏幕detail_screen,当我正常传递上面的字符串作为参数时,我收到此错误

java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/detail_screen/45193/'/storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Here you go.mp3' } cannot be found in the navigation graph NavGraph(0x0) startDestination={Destination(0x442b361f) route=home_screen}
Run Code Online (Sandbox Code Playgroud)

至于这个地方,如果我传递像这样的字符串Here you go.mp3,它工作得很好!

我认为 Compose Navigation 无法区分/

android android-navigation android-architecture-navigation android-jetpack-compose navigation-compose

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

检索用户性别虽然Google使用Firebase登录但未获得所有用户性别?

场景:

我想在我的Android应用程序中GOOGLE SIGN IN使用登录Firebase Google Login,我的基本需求是在我的应用程序中登录时检索USER性别USER.

问题:

即使我得到的性别USERS,但不是全部 USERS,那么,是因为越来越问题只是一些用户的性别是很奇怪的,所以我的问题是,为什么我没有得到所有用户的性别,同时登录?

public void performFirebaseLogin(GoogleSignInAccount acct, final Context context, final LoginSPrefRepositoryImpl loginSPrefRepositoryImpl) {
        AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
        final GoogleAccountCredential googleCredential = GoogleAccountCredential.usingOAuth2(
                    context, Collections.singleton(Scopes.PROFILE));
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener((Activity) context, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {

                            FirebaseUser user = mAuth.getCurrentUser();
                            if (user != null) {
                            //here i am calling profile detail of user
                                new GetProfileDetails(user, …
Run Code Online (Sandbox Code Playgroud)

android google-signin

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

如何使用 Retrofit 从 android 发送 FCM 通知?

我想fcm notification从 android 设备发送到另一个设备,使用retrofit.

我试试这个,但是,

public interface ApiInterface {
    @Headers("Authorization : key=AAAA4Ubio1Q:APA91bGWkw84b1XX2nnnOKn8MO25U2giLRXXXTUkXidojFluZk_qKXXXlS27oMZZV5goTQdwRtpdmvI1iAPRZZDNKz6c-mpU6nvHZJ-Jg9f1fQ5NdttftqUpqwAkObLEEX26VFDDbXN8")
    @POST("fcm/send")
    Call<ResponseBody> sendChatNotification(@Field("to") String token,@Body RequestNotificaton requestNotificaton);

}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

java.lang.IllegalArgumentException: Unexpected char 0x20 at 13 in header name: Authorization 
        at okhttp3.Headers$Builder.checkNameAndValue(Headers.java:330)
        at okhttp3.Headers$Builder.add(Headers.java:288)
        at retrofit2.ServiceMethod$Builder.parseHeaders(ServiceMethod.java:329)
        at retrofit2.ServiceMethod$Builder.parseMethodAnnotation(ServiceMethod.java:270)
        at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:175)
        at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
        at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
        at java.lang.reflect.Proxy.invoke(Proxy.java:913)
        at $Proxy0.sendChatNotification(Unknown Source)
        at com.rudruam.v2chat.Activity.ChatActivity.sendNotificationToPatner(ChatActivity.java:288)
        at com.rudruam.v2chat.Activity.ChatActivity.access$400(ChatActivity.java:94)
        at com.rudruam.v2chat.Activity.ChatActivity$4.onClick(ChatActivity.java:227)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6499)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Run Code Online (Sandbox Code Playgroud)

我认为有一个 …

android retrofit retrofit2

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

Android java.lang.IllegalArgumentException:path必须是凸的

Android 7中的相同应用程序工作和Android 8中的失败.

在一项活动中,我正在从Fire-base数据库中检索数据.当Fire-base数据库为空时没有发生错误并且当它有数据时发生错误,我搜索错误但从未得到任何解决方案.

logcat: -

java.lang.IllegalArgumentException: path must be convex
        at android.graphics.Outline.setConvexPath(Outline.java:284)
        at android.graphics.drawable.AdaptiveIconDrawable.getOutline(AdaptiveIconDrawable.java:387)
        at android.view.ViewOutlineProvider$1.getOutline(ViewOutlineProvider.java:38)
        at android.view.View.rebuildOutline(View.java:14960)
        at android.view.View.setBackgroundBounds(View.java:19416)
        at android.view.View.drawBackground(View.java:19381)
        at android.view.View.draw(View.java:19183)
        at android.view.View.updateDisplayListIfDirty(View.java:18142)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022)
        at android.view.View.updateDisplayListIfDirty(View.java:18133)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022)
        at android.view.View.draw(View.java:19195)
        at android.view.View.updateDisplayListIfDirty(View.java:18142)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at android.support.v7.widget.RecyclerView.drawChild(RecyclerView.java:4703)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022)
        at android.view.View.draw(View.java:19195)
        at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:4107)
        at android.view.View.updateDisplayListIfDirty(View.java:18142)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022)
        at android.view.View.updateDisplayListIfDirty(View.java:18133)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022)
        at android.view.View.updateDisplayListIfDirty(View.java:18133)
        at android.view.View.draw(View.java:18920)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4236)
        at …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception android-logcat

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

尝试删除 app/build/intermediates/manifests/full/debug/output.json 或清理您的构建目录

我在我的 mac 书中遇到了这个错误,尝试了很多参考资料,但对我不起作用

* Exception is:
com.intellij.openapi.externalSystem.model.ExternalSystemException: Invalid file found (empty apk data).
Try to remove /Users/yernarmyntayev/Downloads/UpStore/app/build/outputs/apk/debug/output.json or clean your build directory.
If the error persists, report this issue via Help > Submit Feedback.
    at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:252)
    at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:127)
    at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:48)
    at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:77)
    at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.runAction(ClientProvidedPhasedActionRunner.java:120)
    at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.run(ClientProvidedPhasedActionRunner.java:110)
    at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.buildFinished(ClientProvidedPhasedActionRunner.java:104)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:382)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
    at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352)
    at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
    at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231)
    at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
    at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:325)
    at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:235)
    at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
    at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) …
Run Code Online (Sandbox Code Playgroud)

android android-studio

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