Android 如何在Firebase中插入两个表的数据?

Android 如何在Firebase中插入两个表的数据?,android,sqlite,firebase,firebase-realtime-database,nosql,Android,Sqlite,Firebase,Firebase Realtime Database,Nosql,我是Firebase的新手,我计划从SQLite切换到Firebase 我在SQLite中有两个表 第一个是存储库的名称。这将适用于所有用户,应用程序的所有用户都可以访问 第二个是书签。这将是特定于特定用户的。我知道Firebase中没有表结构 问题是,我如何在Firebase中构造这种类型的数据?我已经试着理解Firebase的树结构,但没有得到这类场景的帮助。您好,首先您应该尝试理解数据非规范化的基本概念。你可以查看其中一个博客 同样,有关构造数据的详细信息,请参见 您可以再次使用这些链

我是Firebase的新手,我计划从SQLite切换到Firebase

我在SQLite中有两个表

  • 第一个是存储库的名称。这将适用于所有用户,应用程序的所有用户都可以访问

  • 第二个是
    书签
    。这将是特定于特定用户的。我知道Firebase中没有表结构


问题是,我如何在Firebase中构造这种类型的数据?我已经试着理解Firebase的树结构,但没有得到这类场景的帮助。

您好,首先您应该尝试理解数据非规范化的基本概念。你可以查看其中一个博客

同样,有关构造数据的详细信息,请参见

您可以再次使用这些链接开始结构化数据。您必须具有非规范化的结构,以使开发人员在firebase中获得最佳体验

来找你,两张桌子。


您需要在firebase中创建2个节点。第一个是带有
存储库名称
书签
。如果两个表都有任何关系,请使用该关系创建一个新节点,比如说
USERBOOKMARK
,然后尝试添加对该节点的引用。

您好首先,您应该尝试理解数据非规范化的基本概念。你可以查看其中一个博客

同样,有关构造数据的详细信息,请参见

您可以再次使用这些链接开始结构化数据。您必须具有非规范化的结构,以使开发人员在firebase中获得最佳体验

来找你,两张桌子。


您需要在firebase中创建2个节点。第一个是带有
存储库名称
书签
。如果两个表都有任何关系,请使用该关系创建一个新节点,比如说
USERBOOKMARK
,然后尝试向该节点添加引用。

要创建两个表,必须为第二个表创建
数据库引用的对象。还必须创建第二个节点

public class MainActivity extends AppCompatActivity {

    private DatabaseReference mFirebaseDatabase;
    private FirebaseDatabase mFirebaseInstance;

    //Create an object of DatabaseReference to create second table
    private DatabaseReference mFirebaseDatabase1;

    private String userId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFirebaseInstance = FirebaseDatabase.getInstance();

        // get reference to 'RepositoryName' node
        mFirebaseDatabase = mFirebaseInstance.getReference("RepositoryName");

        // get reference to 'Bookmarks' node
        mFirebaseDatabase1 = mFirebaseInstance.getReference("Bookmarks");

        // Save / update the user
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = inputName.getText().toString();
                String email = inputEmail.getText().toString();
                String password = inputPassword.getText().toString();
                String confirmPassword = inputConfirmPassword.getText().toString();

                // Check for already existed userId
                if (TextUtils.isEmpty(userId)) {
                    createUser(name, email, password, confirmPassword);
                }
            }
        });
    }

    /**
     * Creating new user node under 'users'
     */
    private void createUser(String name, String email, String password, String confirmPassword) {
        // TODO
        // In real apps this userId should be fetched
        // by implementing firebase auth
        if (TextUtils.isEmpty(userId)) {
                /*userId store the unique key like KYNGnlMMIf3w11VukqD
                in this key store usename and email as JSON format in firebase cloud database*/

            // "mFirebaseDatabase" is for table1(i.e RepositoryName)
            //userId = mFirebaseDatabase.push().getKey();

            // "mFirebaseDatabase1" is for table2(i.e Bookmarks)
            userId = mFirebaseDatabase1.push().getKey();
        }

        User user = new User(name, email, password, confirmPassword);

        //insert data in firebase database RepositoryName
        mFirebaseDatabase.child(userId).setValue(user);

        //insert data in firebase database Bookmarks
        mFirebaseDatabase1.child(userId).setValue(user);
    }
}

希望这对您有所帮助:)

要创建两个表,您必须为第二个表创建
数据库引用的对象。还必须创建第二个节点

public class MainActivity extends AppCompatActivity {

    private DatabaseReference mFirebaseDatabase;
    private FirebaseDatabase mFirebaseInstance;

    //Create an object of DatabaseReference to create second table
    private DatabaseReference mFirebaseDatabase1;

    private String userId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFirebaseInstance = FirebaseDatabase.getInstance();

        // get reference to 'RepositoryName' node
        mFirebaseDatabase = mFirebaseInstance.getReference("RepositoryName");

        // get reference to 'Bookmarks' node
        mFirebaseDatabase1 = mFirebaseInstance.getReference("Bookmarks");

        // Save / update the user
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = inputName.getText().toString();
                String email = inputEmail.getText().toString();
                String password = inputPassword.getText().toString();
                String confirmPassword = inputConfirmPassword.getText().toString();

                // Check for already existed userId
                if (TextUtils.isEmpty(userId)) {
                    createUser(name, email, password, confirmPassword);
                }
            }
        });
    }

    /**
     * Creating new user node under 'users'
     */
    private void createUser(String name, String email, String password, String confirmPassword) {
        // TODO
        // In real apps this userId should be fetched
        // by implementing firebase auth
        if (TextUtils.isEmpty(userId)) {
                /*userId store the unique key like KYNGnlMMIf3w11VukqD
                in this key store usename and email as JSON format in firebase cloud database*/

            // "mFirebaseDatabase" is for table1(i.e RepositoryName)
            //userId = mFirebaseDatabase.push().getKey();

            // "mFirebaseDatabase1" is for table2(i.e Bookmarks)
            userId = mFirebaseDatabase1.push().getKey();
        }

        User user = new User(name, email, password, confirmPassword);

        //insert data in firebase database RepositoryName
        mFirebaseDatabase.child(userId).setValue(user);

        //insert data in firebase database Bookmarks
        mFirebaseDatabase1.child(userId).setValue(user);
    }
}

希望这对您有所帮助:)

您是否尝试过通过以下步骤:Firebase中没有表,但树节点您是否尝试过浏览Firebase中没有表,只有树节点