小编Dor*_*lan的帖子

首先使用Facebook进行身份验证然后使用Google导致Firebase for Android出现错误

据我在Firebase文档中了解,如果用户使用凭据对其帐户进行身份验证,则如果凭据尚未与其他凭据相关联,则应使用相同的凭据严格登录.

换句话说,如果我使用Google登录创建帐户,然后(退出后)尝试使用与Google凭据相同的电子邮件登录Facebook凭据,我应该在logcat中看到此异常:

"已存在具有相同电子邮件地址但登录凭据不同的帐户.请使用与此电子邮件地址关联的提供商登录."

是的,我毫不奇怪地得到了这个例外.但是,如果我使用Facebook创建帐户,然后尝试使用Google凭据登录,则此帐户(Facebook)的提供商将转换为Google.此时身份验证不会失败,但不是预期的结果.我想以某种方式将每个用户与特定凭据相关联.我该怎么解决这个问题?你可以看到下面的代码:

public class SignInActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener,
        View.OnClickListener {

    private static final String TAG = "SignInActivity";
    private static final int RC_SIGN_IN = 9001;

    private GoogleApiClient mGoogleApiClient;
    private FirebaseAuth mFirebaseAuth;
    private FirebaseAuth.AuthStateListener mFirebaseAuthListener;

    private CallbackManager mCallbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_sign_in);

        // Facebook Login
        FacebookSdk.sdkInitialize(getApplicationContext());
        mCallbackManager = CallbackManager.Factory.create();

        LoginButton mFacebookSignInButton = (LoginButton) findViewById(R.id.facebook_login_button);
        mFacebookSignInButton.setReadPermissions("email", "public_profile");

        mFacebookSignInButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Log.d(TAG, "facebook:onSuccess:" + loginResult);
                firebaseAuthWithFacebook(loginResult.getAccessToken());
            }

            @Override …
Run Code Online (Sandbox Code Playgroud)

android google-authentication facebook-login firebase firebase-authentication

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

如何减少HashMap <String,Integer>的内存使用情况,如数据结构

在开始解释我的问题之前,我应该提一下,我不是在寻找增加Java堆内存的方法.我应该严格存储这些对象.

我正在努力将大量(5-10 GB)的DNA序列及其计数(整数)存储在哈希表中.DNA序列(长度为32或更短)由'A','C','G','T'和'N'(未定义)字符组成.众所周知,当在内存中存储大量对象时,与C和C++等低级语言相比,Java的空间效率较差.因此,如果我将此序列存储为字符串(它为长度为~30的序列保存大约100 MB内存),我会看到错误.

我试图将核酸表示为'A'= 00,'C'= 01,'G'= 10,'T'= 11并忽略'N'(因为它将char烧成2位变换为5-酸).然后,将这些2位酸连接成字节数组.它带来了一些改进但不幸的是我再次看到错误几个小时后.我需要一个方便的解决方案或至少一种解决方法来处理此错误.先感谢您.

java performance hashmap

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

在Android中使用arcTo创建凹路径

我想绘制这样的路径并填写它:

在此输入图像描述

如果原点是带有(x,y)坐标的红点.我应该在下面的三点中写下这条路径.我已经尝试了很多,但无法弄清楚arcTo是如何工作的.

    path.moveTo(x, y);
    path.arcTo(...);
    path.arcTo(...);
    canvas.drawPath(path, paint);
Run Code Online (Sandbox Code Playgroud)

android path android-canvas

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

在MATLAB中替换单元格的值

假设M是一个5x1的单元格,它看起来像:

3x3 double
3x3 double
3x3 double
3x3 double
3x3 double
Run Code Online (Sandbox Code Playgroud)

举例来说,第一个细胞是:

3  NaN  1
0   1  NaN
4   8   9
Run Code Online (Sandbox Code Playgroud)

我想为每个单元格替换NaN值为零.但是,由于cellfun不支持显式赋值(=),我无法正确使用它,如下所示:

D = cellfun(@(x) x(isnan(x)) = 0, D, 'UniformOutput', false);
Run Code Online (Sandbox Code Playgroud)

有办法吗?

matlab cells

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

java程序无法读取字符串

import java.util.*;

class DataTypes {

    public static void main(String args[]) {
        int i = 4;
        double d= 4.0;
        String s = "Hackerrank";
        Scanner scan = new Scanner(System.in);
        int j = scan.nextInt();
        double d1 = scan.nextDouble();
        String s1 = new String();
        s1 = scan.nextLine();
        j = j+i;
        System.out.println(j);
        d1 = d1+d;
        System.out.println(d1);
        System.out.println(s+" "+s1);
        scan.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

看到上面的代码它没有错误但是在我输入double后程序没有读取字符串它直接显示输出.但是当我评论int和double的扫描语句时,程序会读取我的字符串.为什么会这样?

java

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

使用PhoneNumberFormattingTextWatcher无需键入国家/地区代码

在我的应用程序的登录面板中,我将国家/地区电话代码和剩余的号码划分为两个可编辑的TextView,如下所示:

在此处输入图片说明

我想在右侧的TextView中使用国际格式标准。如果电话号码为+905444444444的用户在这些框中键入电话号码,我想在左侧的框中看到“ 90”,在右侧的框中看到“ 544 444 4444”。

因此,我尝试使用以下使用libphonenumber的实现:

/**
 * Watches a {@link android.widget.TextView} and if a phone number is entered
 * will format it.
 * <p>
 * Stop formatting when the user
 * <ul>
 * <li>Inputs non-dialable characters</li>
 * <li>Removes the separator in the middle of string.</li>
 * </ul>
 * <p>
 * The formatting will be restarted once the text is cleared.
 */
public class PhoneNumberFormattingTextWatcher implements TextWatcher {

    /**
     * Indicates the change was caused by ourselves.
     */
    private …
Run Code Online (Sandbox Code Playgroud)

android phone-number textwatcher libphonenumber

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