首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ChatSDK验证Firebase用户?

如何使用ChatSDK验证Firebase用户?
EN

Stack Overflow用户
提问于 2018-08-22 21:59:18
回答 1查看 343关注 0票数 1

我已经将Firebase集成到我的应用程序中。我可以通过电子邮件/密码向Firebase进行身份验证。然后我初始化ChatSDK并从那里调用InterfaceManager.shared().a.startLoginActivity(this,true);,应用程序被默认的聊天用户界面“接管”,功能运行良好,ChatSDK.currentUser()返回预期的User对象。

我想用我自己的UI做同样的事情。为了在ChatSDK初始化后对用户进行身份验证,我尝试过:ChatSDK.auth().authenticateWithCachedToken(); ChatSDK.auth().authenticate(AccountDetails.signUp(email,pwd)); ChatSDK.auth().authenticate(AccountDetails.username(email,pwd));

据我所知,除非我有一个有效的User,否则我不能做ChatSDK.thread().createThread(...)。但是,在每次身份验证尝试之后,ChatSDK.currentUser()null

查看ChatSDK source codedocumentation,这似乎是用于身份验证的机制。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 23:31:22

订阅是必要的,即使你不使用它。

代码语言:javascript
复制
        ChatSDK.auth()
            .authenticateWithCachedToken()
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Action() {
                @Override
                public void run() throws Exception {
                    Log.d("Success","We're in!");
                }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(Throwable throwable) throws Exception {
                        Log.d("Err",throwable.toString());
                    }
                });

此外,这里有一些使用已知用户id启动新聊天线程的代码。

代码语言:javascript
复制
    UserWrapper userWrapper = UserWrapper.initWithEntityId(firebaseUser.uid);
    userWrapper.metaOn();
    userWrapper.onlineOn();
    User otherUser = userWrapper.getModel();

    ProgressDialog pd = new ProgressDialog(MainActivity.this);
    pd.show();

    ChatSDK.thread().createThread("", otherUser, ChatSDK.currentUser())
            .observeOn(AndroidSchedulers.mainThread())
            .doFinally(() -> {
                pd.dismiss();
            })
            .subscribe(thread -> {
                ChatSDK.ui().startChatActivityForID(getApplicationContext(), thread.getEntityID());
            }, throwable -> {
                ToastHelper.show(getApplicationContext(), throwable.getLocalizedMessage());
            });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51968567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档