Google刚刚发布了Cloud Firestore,它们是用于应用程序的新文档数据库。 我一直在阅读文档,但是Firestore和Firebase DB之间没有太多的区别。 重点是Firestore使用文档和集合,这些文档和集合与Firebase(这是一个带有JSON基础的传统NoSQL数据库)相比,可以方便地使用查询。 我想知道更多关于它们的区别或用法,或Firestore是否刚刚取代Firebase DB?
Firebase的createUser()方法需要一个电子邮件和密码字段,但是如果我还想允许用户使用与Snapchat,Instagram,StackOverflow等类似的用户名呢? 有没有办法修改现有的方法来接受该字段,或者我需要手动推送和pipe理这些信息,如果是这样的话? 这是我第一次尝试存储所需的用户信息: Firebase ref = new Firebase(firebaseURL); ref.createUser(email, password, new Firebase.ValueResultHandler<Map<String, Object>>() { @Override public void onSuccess(Map<String, Object> result) { System.out.println("Successfully created user account with uid: " + result.get("uid")); //Sign user in Firebase ref = new Firebase(firebaseURL); ref.authWithPassword(email, password, new Firebase.AuthResultHandler() { @Override public void onAuthenticated(AuthData authData) { System.out.println("User ID: " + authData.getUid() + […]
目前,Google版本的ServerValue.TIMESTAMP返回{".sv":"timestamp"} ,一旦您将数据保存到Firebase服务器,该版本将作为Firebase的指令使用服务器时间戳填充该字段。 但是,当您在客户端创build数据时,您还没有实际的时间戳(即用作创builddate)。 在初始保存和随后的检索之后,您只能访问时间戳,我想 – 这有时为时已晚,不够优雅。 Google之前: 更新:忽略这一部分,因为它是不正确的 – 我误解了这些例子。 ServerValue.TIMESTAMP总是返回{".sv":"timestamp"} 。 据我所知,在谷歌Firebase之前,似乎有一个服务器生成的时间戳,允许您获取实际的时间戳: import com.firebase.client.ServerValue; ServerValue.TIMESTAMP // eg. 1466094046 ( 参考文献1 , 参考文献2 ) 问题: 这样的保存/检索是获得我的模型实例上的服务器生成的创builddate的唯一方法吗? 如果是的话,你能提出一个实施这种模式的方法吗? 我是否正确理解ServerValue.TIMESTAMP随着Google收购Firebase而改变? 更新:不,@FrankvanPuffelen回复说,收购过程中没有任何变化。 注意: 我不考虑在客户端使用new Date() ,因为我一直在阅读它是不安全的,但如果你认为不同,请分享你的想法。
我比较新的编码,有麻烦。 我有这个代码发送数据到firebase app.userid = app.user.uid var userRef = app.dataInfo.child(app.users); var useridRef = userRef.child(app.userid); useridRef.set({ locations: "", theme: "", colorScheme: "", food: "" }); 但是,我不断收到错误: FIREBASE警告:设置在/ users /(GoogleID)失败:permission_denied 2016-05-23 22:52:42.707 firebase.js:227未捕获(承诺)错误:PERMISSION_DENIED:权限被拒绝(…) 当我试图查看这个问题时,它谈到了关于Firebase的规则,这个规则似乎是我还没有学习的语言(或者只是在我的头上)。 有人可以解释是什么造成这个问题? 我以为是我要求它存储电子邮件和用户显示名称,你只是不允许这样做,但当我把它们拿出来,我仍然有同样的问题。 有没有办法避免这个错误,而没有设定规则,或规则的东西,我可以教自己如何写在一天,或者我刚刚离开我的联盟吗? 感谢您的帮助!
我想从Android中的Firebase的所有孩子列表。 我已经实现这个代码,但它不工作。 mFirebaseRef = new Firebase(FIREBASE_URL); mFirebaseRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { List<String> td = (ArrayList<String>) dataSnapshot.getValue(); //notifyDataSetChanged(); } @Override public void onCancelled(FirebaseError firebaseError) { } });
我想将属性添加到Firebase用户对象。 用户文档说,我只能使用Firebase实时数据库存储其他属性。 我不确定这在实践中如何运作 。 以下是什么意思? 您无法直接将其他属性添加到Firebase用户对象; 相反,您可以将其他属性存储在您的Firebase实时数据库中。 我把它解释如下: “您不能修改FIRUser对象的属性,但可以将其与其他对象组合” 我find了这样设置的函数文档 : var userRef = ref.child("users"); userRef.set({ newfield: "value" }); 这是一个明智的做法吗?
对不起,如果我的英文不好。 但是我希望你能理解我编码中的错误。 我想从函数“ambilKey()”中检索值,以便在外部方法onDataChange()中获取“hasilKey”的值。 请让我的代码,我需要在外部方法onDataChange()getvalue“hasiKey”。 [MyPictureDatabaseFirebase] [1] [MyPictureResultLog] [2] public class IbuActivity extends AppCompatActivity { private FirebaseAuth mAuth; private String hasilKey="error"; private DatabaseReference dbAmbilKeyPengguna; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ibu); mAuth=FirebaseAuth.getInstance(); //Retrieve Value hasilKey is my problem ambilKey(); //Check Value Log.i("Result=",hasilKey); //hasilKey Not Working and not saved } private void ambilKey() { dbAmbilKeyPengguna=FirebaseDatabase.getInstance().getReference().child("DataPengguna").child(mAuth.getCurrentUser().getUid()).child("BisnisId"); dbAmbilKeyPengguna.addValueEventListener(new ValueEventListener() […]
我有一个使用Firebase数据库的小型个人Firebase Web应用程序。 我想要保护(locking)这个应用程序从一个单一的,特定的域的任何用户。 我想与Google进行身份validation。 我不清楚如何configuration规则来说“只有来自单个特定域(比如@foobar.com )的用户才能读取和写入这个数据库”。 (我看到的一部分问题:很难用足够的信息来启动一个数据库来使这个用例工作,在authentication的时候我需要知道用户的电子邮件,但是auth对象不包含email。是一个鸡蛋问题,因为我需要编写引用数据库中的数据的Firebase规则,但由于我的用户无法写入数据库,所以数据还不存在。 如果auth有电子邮件,那么我可以很容易地编写规则。 提前致谢!