我正在尝试将文档中的所有字段获取到ListView. 我试过 foreach 循环,但它不起作用。
dbRef.collection("Shopkeeper Own Shops").document("Shopkeeper@gmail.com")
.get()
.addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
// Get all fields to a list
}
});
Run Code Online (Sandbox Code Playgroud) 我还阅读了最近的一篇文章,其中说这可以用某种方式arrayUnion或类似的方式完成,但我无法在文档中获得有关stackoverflow的任何信息.
有什么办法可以解决这个问题吗?谢谢!
有什么可能的方法可以根据特定字段值的数字对集合的 Cloud Firestore 文档进行排序。例如,在集合中ids有文档,并且在每个文档中都有一个名为 的字段idNumber。该 idNumber 的值是 0 然后在下一个文档中是 1 然后是 2 等等。这可能吗?
提前致谢!
我有一棵Firestore收集树,我打算在其中仅存储一个文档。我想检查该集合是否包含该文档,如果包含,请检索该文档的ID!有什么想法/想法吗?
谢谢 :)
我想知道Firestore中阵列的存储大小限制是什么。我想在数组中创建数百万个索引,并希望将数据存储为一个JSON对象。数组如下所示:
[{id:1,name:'shakti',userdata:2122},
{id:0.55,name:'shakti',userdata:2122},
{id:1.58,name:'shakti',userdata:2122},
{id:2.58,name:'shakti',userdata:2122},
{id:1.5,name:'shakti',userdata:2122}];
Run Code Online (Sandbox Code Playgroud)
我浏览了文档,但那里没有任何适当的指南。
有没有办法在 Firebase Firestore 集合中获取上次创建的文档?我的要求是当用户签名时,我必须在名为“history”的集合中添加一个文档;当用户退出时,我想使用名为“退出”的字段更新该文档;因此,如果我获得最后添加的文档,则很容易更新。有没有办法做到这一点?
我想获取父键值,其中“drinkManufacturerID”等于 currentUsers UID。但是,我不知道 theVenueID或 the的值PushID(见下文)。在不知道这些值的情况下,如何检查“drinkManufacturerID”的值是否相等。是否可以不重组我的数据库?
相关代码:
public class DealRawDataActivity extends AppCompatActivity {
DatabaseReference databaseDrinks;
DatabaseReference databaseManufacturer;
String keys;
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_deal_raw_data);
databaseDrinks = FirebaseDatabase.getInstance().getReference("drinks").child("-LWLuM2nesg0uaP0dLSn"); //However, this string will not be know! How to get this string value?
//To later be used in listView
databaseDrinks.orderByChild("drinkManufacturerID").equalTo(currentFirebaseUser.getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
keys = datas.getKey();
}
Toast.makeText(getApplicationContext(), keys, Toast.LENGTH_LONG).show(); …Run Code Online (Sandbox Code Playgroud) 我编写了一个可在Cloud Firestore数据库中保存和使用数据的应用程序。我现在想比现在更清晰地组织文件,例如使用DO和DAO。
我知道Android机房中存在“ DAO”的概念。
但是,文档似乎将Android Room定义为“本地数据库”。因此,如果我对它的理解很好,那我就不应该在Firestore中使用它吗?
顺便说一下,Firebase Cloud Realtime Database(第三个数据库系统)也是如此。
我不了解“本地”数据库(房间)的概念。塔米尔(Tamir)在回答中纠正了我。这个问题是题外话。
我正在尝试使用 Maps 和 Update children 更新不同节点中的多个字段,但是 firebase 正在删除相应节点中的数据并添加数据。我希望数据得到更新并且以前的数据保持不变。有趣的是,该逻辑在更新同一节点中的 2 个字段时有效,但在引入多个节点时无效。请看下面的代码。
我不是要创建新字段,而只是同时更新 2 个不同节点中的 2 个现有字段。每个节点都有 10 个不同的字段,我想保留它们。
我从 viewholder.button 内部调用它(在回收器视图适配器中)
String ref1 = "users/" + currentUserId;
String ref2 = "user_detail_profile/" + currentUserId;
HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);
HashMap<String, Object> updateFbDb2 = new HashMap<>();
updateFbDb2.put("claps", 55);
updateFbDb2.put("comments", 21);
HashMap<String, Object> updateFbDb3 = new HashMap<>();
updateFbDb3.put(ref1, updateFbDb1);
updateFbDb3.put(ref2, updateFbDb2);
fbDbRefRoot.updateChildren(updateFbDb3);
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我想一次性完成,以便可以完全或不附加成功的听众。
HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);
HashMap<String, Object> updateFbDb2 = …Run Code Online (Sandbox Code Playgroud) 我想让新用户在决定使用 Gmail、Facebook 或电子邮件和密码登录之前可以看到我的应用程序中的一些内容。所以首先我需要让他们在使用此代码安装应用程序时匿名登录
auth.signInAnonymously()
Run Code Online (Sandbox Code Playgroud)
然后,在他们尝试之后,他们决定使用 Google 帐户登录,然后我将具有特定 UID(假设 UID 是 q1q2q3)的用户转换为使用此代码使用 Google 作为身份验证提供程序。
auth.currentUser!!.linkWithCredential(credential)
Run Code Online (Sandbox Code Playgroud)
然后假设他们卸载并重新安装该应用程序。因此他们将再次匿名登录,并且作为匿名用户将获得不同的 UID(假设新的 UID 是 aXXXX12345b ),即使他们再次使用 Google 登录,他们也会以 q1q2q3 身份登录
所以现在我有一个多余的匿名用户(aXXXX12345b)。像这样有多余的匿名身份验证用户可以吗?我的意思是,我担心我会遇到 firebase 身份验证的限制。我应该怎么办 ?对于这样的情况有更好的方法吗?我不知道这是否是一种常见做法